今天在做表备份的时候使用create table as select 在原表名后加上110331,发现报ORA-00972: identifier is too long,于是改成0331就好了。
经过查找相关资料oracle表名的最大长度是30,我加上了0331正好是30,多加2为就32了,当然报错了。
- SQL> select length('TE_BIZFUNCTION_FILTER_NEW_0331') from dual;
- LENGTH('TE_BIZFUNCTION_FILTER_NEW_0331')
- ----------------------------------------
- 30
同时有网友说看看desc dba_tables,看table_name字段的定义也可以发现,这个很有道理,于是我看了一把
- QL> desc user_tables;
- Name Null? Type
- ----------------------------------------- -------- ----------------------------
- TABLE_NAME NOT NULL VARCHAR2(30)
- TABLESPACE_NAME VARCHAR2(30)
- CLUSTER_NAME VARCHAR2(30)
- IOT_NAME VARCHAR2(30)
- STATUS VARCHAR2(8)
- PCT_FREE NUMBER
- PCT_USED NUMBER
- INI_TRANS NUMBER
这么看来,表空间名最大长度也是30啊。看来oracle对30,情有独钟嘛。以后要注意一下。
阅读(5913) | 评论(0) | 转发(0) |