Какая максимальная длина имени таблицы в 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. Я тщательно проверил этот ответ, так что я опубликовал этот ответ уверенно.