Oracle PLS-00114: 标识符 ' ' 太长

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 


 






























以上是关于Oracle PLS-00114: 标识符 ' ' 太长的主要内容,如果未能解决你的问题,请参考以下文章

电脑重装Oracle提示指定的系统标识符已在使用如何解决

oracle数据库安装过程中出现的错误:[INS-35075] 已存在具有指定标识符的数据库实例,神马情况,在线等急

REGEXP oracle几个not语句

oracle用dblink远程查询的时候在sql窗口经常出现TNS:无法解析指定的连接标识符。有时候又可以。怎么破?

oracle导出数据错误12154

Oracle 标识符最大长度