Объект, в котором Oracle хранит имя идентификаторов (например, имена таблиц пользователя хранятся в таблице с именем USER_TABLES, а имена столбцов пользователя хранятся в таблице с именем USER_TAB_COLUMNS), имеют NAME столбцы (например table_name в user_tables) размера VARCHAR2 (30) ... и это равномерное через все системные таблицы объектов или идентификаторов -
DBA_ALL_TABLES ALL_ALL_TABLES USER_ALL_TABLES
DBA_PARTIAL_DROP_TABS ALL_PARTIAL_DROP_TABS USER_PARTIAL_DROP_TABS
DBA_PART_TABLES ALL_PART_TABLES USER_PART_TABLES
DBA_TABLES ALL_TABLES USER_TABLES
DBA_TABLESPACES USER_TABLESPACES TAB
DBA_TAB_COLUMNS ALL_TAB_COLUMNS USER_TAB_COLUMNS
DBA_TAB_COLS ALL_TAB_COLS USER_TAB_COLS
DBA_TAB_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS
DBA_TAB_HISTOGRAMS ALL_TAB_HISTOGRAMS USER_TAB_HISTOGRAMS
DBA_TAB_MODIFICATIONS ALL_TAB_MODIFICATIONS USER_TAB_MODIFICATIONS
DBA_TAB_PARTITIONS ALL_TAB_PARTITIONS USER_TAB_PARTITIONS
Из любопытства, кто-нибудь знает, откуда это ограничение, и почему предел никогда не расслаблялся? Мне действительно кажется, что ни один из миллионных клиентов Oracle * никогда не запрашивал такую функцию (теперь не поймите меня неправильно, я уверен, что есть некоторые глубокие технические причины, но все же ...) – phtrivier
Хорошо, Я мог бы спросить SO: http://stackoverflow.com/questions/1378133/why-are-oracle-table-column-index-names-limited-to-30-characters – phtrivier
Я также столкнулся с этой ситуацией. У меня есть столбец таблицы с именем length = 32. Но почему на самом деле имя столбца таблицы разрешено иметь более 30 символов, а в то же время идентификатор нет? Эти ограничения должны идти рука об руку, верно?Как эта ситуация может возникнуть вообще? – Vering