更改活动数据库中的NLS_LENGTH_SEMANTICS会是一个好主意。数据库字符集使用多字节字符编码方案。因此,应用程序将获得无法重新创建的随机错误。在大多数情况下,ORA-06502: PL/SQL: numeric or value error是升高的。因此,为了解决这个问题,我们计划更改NLS_LENGTH_SEMANTICS参数值。对于应用程序,建议的NLS_LENGTH_SEMANTICS设置是CHAR,在创建DB实例时没有将其设置为该值。我的问题是,将值更改为CHAR会有帮助吗?或者用NLS_LENGTH_SEMANTICS = 'CHAR'创建一个新的DB实例并导出旧的DB并将其导入到新的DB中会有帮助吗?
发布于 2016-06-22 07:41:13
NLS_LENGTH_SEMANTICS使您能够使用字节或字符长度语义创建CHAR和VARCHAR2列。现有列不受影响。表示现有数据不存在风险。
但是,设置为NLS_LENGTH_SEMANTICS的CHAR参数可能会导致许多现有安装脚本意外地创建具有字符长度语义的列,从而导致运行时错误,包括缓冲区溢出。要解决这个问题,您需要确保在运行任何甲骨文“内部”脚本(如补丁、升级等)时设置NLS_LENGTH_SEMANTICS=BYTE。
https://stackoverflow.com/questions/37960407
复制相似问题