今天给服务器做系统切换,数据移植,linux 上oracle安装完成后,执行语句会报错
_____________________
运行环境:
服务器系统:CentOS 4.8
oracle版本:10.2.01
_____________________
SQL-Code
_____________________________________________________________________
ALTER TABLE zlClientParaSet ADD CONSTRAINT zlClientParaSet_CK_恢复标志 Check (恢复标志 in(0,1,2)) PCTFREE 5 
/错误提示:
ORA-00972:identifier is too long
_____________________________________________________________________
说明:该语句在windows下的oracle上执行没有问题。不清楚是不是linux下的oracle哪里需要设置下才行呢,请各位高手解答!~
小弟先行谢过各位了..

解决方案 »

  1.   

    ORA-00972: identifier is too long 
    Cause: An identifier with more than 30 characters was specified.
    Action: Specify at most 30 characters.好像也没超过30个字符啊.
    奇怪.
      

  2.   

    zlClientParaSet_CK_恢复标志
    可能这个太长了,看看你装完数据库的字符集和原来的字符集是否一样。。可能是字符集造成长度超过
      

  3.   

    -- 约束命名太长!Oracle的各类对象的名字不能超过30个字符,而你现在的约束名字的长度为:music@SZTYORA> SELECT lengthb('zlClientParaSet_CK_恢复标志') as obj_len from dual;   OBJ_LEN
    ----------
            31
      

  4.   

    ALTER TABLE zlClientParaSet ADD CONSTRAINT zlClientParaSet_CK_恢复标志 Check (恢复标志 in(0,1,2)) PCTFREE 5  
    可能是CONSTRAINT zlClientParaSet_CK_恢复标志  约束名超过30个字符 
      

  5.   


    为什么我linux下安装的oracle就不能执行超过30个字符的约束名呢?会不会是我oracle选择的字符集格式不对呢?我选择的是UTF8格式,还请解答~
      

  6.   

    以前在windos下安装oracle都是GBK格式字符集,这种安装下来执行超过30个字符的约束名都是没有问题,在liniux下安装oracle,要使用能执行这种超过30的字符集的约束名,跟哪里设置有关系吗?
      

  7.   


    ____________________
    还望高手解答,在继续使用原来的约束名的情况下,要成功执行语句,需要哪里设置下呢?望高手解答!~
    ============>>在下,再次谢谢各位了!~
      

  8.   

    -- Oracle 的约束名不能超过30个字符,这是有史以来的一个数据库的限制,暂时没法改变!