• 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;


  • 相关阅读:
    make menuconfig出现乱码
    内存中的变量和值
    is&==
    python小整数池
    生成器
    GIL
    grub rescue问题修复
    期末考试
    期末要求
    选课练习
  • 原文地址:https://www.cnblogs.com/5588kjx/p/9830496.html
Copyright © 2020-2023  润新知