Oracle中表名的最大长度是多少?

时间:2009-04-16 15:03:20

标签: oracle name-length

Oracle中表名和列名的最大长度是多少?

12 个答案:

答案 0 :(得分:257)

Oracle 12.2及以上,最大对象名称长度为128个字节。

Oracle 12.1及以下,最大对象名称长度为30个字节。

答案 1 :(得分:206)

教一个人钓鱼

注意数据类型和大小

>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)                

答案 2 :(得分:17)

DESCRIBE all_tab_columns

将显示TABLE_NAME VARCHAR2(30)

注意VARCHAR2(30)表示30字节限制,而不是30个字符的限制,因此如果您的数据库配置/设置为使用多字节字符集,则可能会有所不同。

麦克

答案 3 :(得分:8)

是的,但是只要你使用ASCII字符,即使多字节字符集仍然会限制正好30个字符......所以除非你想把心脏和微笑的猫放在你的DB名字中你的罚款...

答案 4 :(得分:5)

30 char(字节,真的,如上所述)。

但不要相信我;试试这个:

SQL> create table a23456789012345678901234567890 (my_id number);

Table created.



SQL> create table a234567890123456789012345678901(my_id number);


ERROR at line 1:

ORA-00972: identifier is too long

更新:如上所述,在Oracle 12.2及更高版本中,最大对象名称长度现在为128个字节。

答案 5 :(得分:3)

答案 6 :(得分:1)

Oracle 12.2上,您可以使用内置常量ORA_MAX_NAME_LEN, 设置为128个字节(根据12.2) 在Oracle 12.1之前,最大大小为30个字节。

答案 7 :(得分:0)

在我正在处理的10g数据库中,我知道表名最多为30个字符。无法告诉你列名长度是多少(但我知道它是> 30)。

答案 8 :(得分:0)

最大名称大小为30个字符,因为数据字典只允许存储30个字节

答案 9 :(得分:0)

Oracle数据库对象名称的最大长度为 30字节

对象名称规则: http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm

答案 10 :(得分:0)

我正在使用Oracle 12c 12.1。但是,它似乎不允许列/表名称超过30个字符。

通读一个提到30个字节的oracle页面。 https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223

在12c中,尽管all_tab_columns对Table_Name说的是VARCHAR2(128),但它不允许超过30个字节的名称。

发现另一篇关于12c R2的文章,似乎允许这个最多128个字符。 https://community.oracle.com/ideas/3338

答案 11 :(得分:-4)

表名和列名的最大长度为128个字节或128个字符。 此限制适用于使用sybase数据库用户。我彻底验证了这个答案,所以我自信地发布了这个答案。