Какая максимальная длина имени таблицы в Oracle?
какова максимальная длина имени таблицы и имени столбца в Oracle?
12 ответов
в Oracle 12.2 и выше максимальная длина имени объекта составляет 128 байт.
в Oracle 12.1 и ниже максимальная длина имени объекта составляет 30 байт.
научите человека ловить рыбу
обратите внимание на тип данных и размер
>describe all_tab_columns
VIEW all_tab_columns
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
DATA_TYPE VARCHAR2(106)
DATA_TYPE_MOD VARCHAR2(3)
DATA_TYPE_OWNER VARCHAR2(30)
DATA_LENGTH NOT NULL NUMBER
DATA_PRECISION NUMBER
DATA_SCALE NUMBER
NULLABLE VARCHAR2(1)
COLUMN_ID NUMBER
DEFAULT_LENGTH NUMBER
DATA_DEFAULT LONG
NUM_DISTINCT NUMBER
LOW_VALUE RAW(32)
HIGH_VALUE RAW(32)
DENSITY NUMBER
NUM_NULLS NUMBER
NUM_BUCKETS NUMBER
LAST_ANALYZED DATE
SAMPLE_SIZE NUMBER
CHARACTER_SET_NAME VARCHAR2(44)
CHAR_COL_DECL_LENGTH NUMBER
GLOBAL_STATS VARCHAR2(3)
USER_STATS VARCHAR2(3)
AVG_COL_LEN NUMBER
CHAR_LENGTH NUMBER
CHAR_USED VARCHAR2(1)
V80_FMT_IMAGE VARCHAR2(3)
DATA_UPGRADED VARCHAR2(3)
HISTOGRAM VARCHAR2(15)
опишите all_tab_columns
покажет имя таблицы VARCHAR2 (30)
Примечание VARCHAR2 (30) означает 30-байтовое ограничение, а не 30-символьное ограничение, и поэтому может отличаться, если ваша база данных настроена/настроена на использование многобайтового набора символов.
Майк
правильно, но пока вы используете символы ASCII, даже многобайтовый набор символов все равно даст ограничение ровно 30 символов... так что если вы не хотите, чтобы положить сердца и улыбающиеся кошки в Вас имена DB ваш штраф...
30 char (байты, действительно, как было указано).
но не доверяйте мне; попробуйте это для себя:
SQL> create table a23545678901234567890123456789 (my_id number);
Table created.
SQL> create table a235456789012345678901234567890(my_id number);
ERROR at line 1:
ORA-00972: identifier is too long
Updated: как указано выше, в Oracle 12.2 и более поздних версиях максимальная длина имени объекта теперь составляет 128 байт.
правила именования объектов схемы также могут быть полезны:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723
On Oracle 12.2
, вы можете использовать встроенные константы, ORA_MAX_NAME_LEN
,
128 байт (в соответствии с 12.2)
До Oracle 12.1
максимальный размер был 30 байт.
в базе данных 10g, с которой я имею дело, я знаю, что имена таблиц максимальны в 30 символах. Не могу сказать вам, что длина имени столбца (но я знаю, что это > 30).
имена объектов базы данных Oracle максимальная длина -30 байт.
Объект-Правила : http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm
максимальный размер имени составляет 30 символов из-за словаря данных, который позволяет хранить только 30 байт
Я работаю над Oracle 12c 12.1. Однако не похоже, что он позволяет более 30 символов для имен столбцов/таблиц.
прочитайте страницу oracle, которая упоминает 30 байт. https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223
в 12c хотя all_tab_columns говорят VARCHAR2 (128) для Table_Name, он не позволяет более 30 байтов имени.
нашел еще одну статью о 12c R2, которая, похоже, позволяет использовать до 128 символов. https://community.oracle.com/ideas/3338
максимальная длина имени таблицы и столбца составляет 128 байт или 128 символов. Это ограничение для использования пользователей базы данных sybase. Я тщательно проверил этот ответ, так что я опубликовал этот ответ уверенно.