Oracle PLS-00114: 标识符 ' ' 太长
在创建存储过程包的时候报标识符过长问题: oracle允许的变量最大长度为30个字符,汉字占两个字符,末尾的汉字占一个字符 但是创建名称为"DEF_AAE140_商业补充医疗保险"的constant时,报标识符过长 --查看oracle数据库字符集: select userenv(‘language‘) from dual; --查看oracle数据库的编码 select * from nls_database_parameters where parameter =‘NLS_CHARACTERSET‘; 经排查与oracle字符集编码格式有关,在utf-8中,一个汉字按照3个字节来算,gbk中一个汉字按照2个字节来算。所以上面的字符串会报错,去掉一个汉字即可以正常执行 修改编码集 1.打开dos窗口,以sysdba的身份登录上去 --sqlplus / as sysdba; 2.关闭数据库 sql> shutdown immediate; 3.以mount打来数据库 sql> startup mount; 4.设置session sql> alter system enable restricted session; system altered. sql> alter system set job_queue_processes=0; system altered. sql> alter system set aq_tm_processes=0; 5.启动数据库 sql> alter database open; 6.修改字符集 ALTER DATABASE character set INTERNAL_USE ZHS16GBK; sql> alter database character set internal_use UTF8; 7.关闭,重新启动 sql> shutdown immediate; sql> startup; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |