2012-06-25 2 views
10

Можно создать дубликат:
Why are Oracle table/column/index names limited to 30 characters?Почему существует максимальная длина имен хранимых процедур?

При написании хранимой процедуры в Oracle, я выбрал особенно описательное имя, и при попытке обновить сценарий, я был информирован имя было слишком долго ,

37 15 PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long 

Почему существует такой ограничительный предел для хранимых имен процессов? Является ли это просто специфическим для Oracle или это распространено в других системах db?


Извините за duplicate

+0

В SQL Server это символы «128», так как это максимальная длина для 'sysname' (тип данных, используемый в базовых таблицах системы). –

+0

Это намного лучше, чем 30 в Oracle, как я быстро узнал. – JWiley

+1

Потому что Oracle родом из дней, когда 30 персонажей считались более чем достаточно! В конце концов, с именами файлов из 8 символов, 30 - это тонна! –

ответ

1

его на самом деле 30 символов только в Oracle.

Каждый язык/db имеет ограничение длины при определении имен, поскольку имя каждого объекта, созданного в БД, хранится в системных таблицах, и каждый столбец имеет фиксированную длину.

Для исполнения мы сохраняем имена короткими в случае БД.

+8

хмм как это ответить * Почему существует такой ограничительный предел на сохраненные имена proc? * –

+0

Как это всплывает для MySQL тоже - для MySQL 5.7 (и, вероятно, пучка других версий) это 64 - manual - https://dev.mysql.com/doc/refman/5.7/en/identifiers .html –

+1

@ConradFrix Я упомянул, что вся информация объектов db хранится в самих системных таблицах. В таблицах есть столбец, и они имеют определенный размер, поэтому ограничивается ограничение длины содержимого, которое нужно сохранить. –

Смежные вопросы