Answers:
在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)
describe user_mview_logs
返回,LOG_TABLE VARCHAR2(128)
但是如果您为实体化视图日志名称尝试任何接近30个字符或更多的字符,您将得到一些令人费解的结果。
描述all_tab_columns
将显示一个TABLE_NAME VARCHAR2(30)
注意VARCHAR2(30)表示30个字节的限制,而不是30个字符的限制,因此,如果将数据库配置/设置为使用多字节字符集,则可能会有所不同。
麦克风
Oracle数据库对象名称的最大长度为30个字节。
对象名称规则:http : //docs.oracle.com/database/121/SQLRF/sql_elements008.htm
我正在研究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
表和列名称的最大长度为128个字节或128个字符。此限制适用于使用sybase数据库用户。我已彻底验证了此答案,所以我已经自信地发布了此答案。