Chinaunix首页 | 论坛 | 博客
  • 博客访问: 776180
  • 博文数量: 180
  • 博客积分: 4447
  • 博客等级: 上校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-03 14:51
文章分类

全部博文(180)

文章存档

2014年(6)

2013年(8)

2011年(125)

2009年(35)

2008年(1)

2007年(5)

分类: Oracle

2011-03-31 15:32:59

今天在做表备份的时候使用create table as select 在原表名后加上110331,发现报ORA-00972: identifier is too long,于是改成0331就好了。
 
经过查找相关资料oracle表名的最大长度是30,我加上了0331正好是30,多加2为就32了,当然报错了。
 
  1. SQL> select length('TE_BIZFUNCTION_FILTER_NEW_0331') from dual;

  2. LENGTH('TE_BIZFUNCTION_FILTER_NEW_0331')
  3. ----------------------------------------

  4.                                       30

同时有网友说看看desc dba_tables,看table_name字段的定义也可以发现,这个很有道理,于是我看了一把

 

  1. QL> desc user_tables;
  2.  Name Null? Type
  3.  ----------------------------------------- -------- ----------------------------

  4.  TABLE_NAME NOT NULL VARCHAR2(30)
  5.  TABLESPACE_NAME VARCHAR2(30)
  6.  CLUSTER_NAME VARCHAR2(30)
  7.  IOT_NAME VARCHAR2(30)
  8.  STATUS VARCHAR2(8)
  9.  PCT_FREE NUMBER
  10.  PCT_USED NUMBER
  11.  INI_TRANS NUMBER
这么看来,表空间名最大长度也是30啊。看来oracle对30,情有独钟嘛。以后要注意一下。
阅读(5836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~