ORA-01890: NLS error detected ORACLE 报错 故障修复 远程处理
文档解释
ORA-01890: NLS error detected
Cause: An NLS error was detected.
Action: Look for additional error messages and take appropriate action. If there are no additional errors, call Oracle Worldwide Support.
ORA-01890错误是一个通用及全局错误,它表示操作中预期的一个本地化参数格式不正确。这个错误在系统及客户端之间无缝交互以及字符的翻译过程中可能会出现。
官方解释
常见案例
正常处理方法及步骤
1)首先,您需要找出导致 ORA-01890 的原因,对 SQL 语句的每一列运行以下查询:
SELECT data_type
FROM user_tab_columns
WHERE table_name = ‘SOME_TABLE’
AND lower(column_name) = ‘somecolumn’;
2)检查 NLS 参数:
SELECT *
FROM nls_session_parameters
ORDER BY parameter;
3)检查NLS_LANG 全局变量:
SHOW PARAMETER NLS_LANG
4)查看游标是否已设定为保存PDSE:
SELECT value
FROM v$parameter
WHERE name = ‘open_cursors’;
如果 PDSE 被指定为保存,则需重新设置该参数:
ALTER SYSTEM SET open_cursors=xxx;
5)检查字符集是否相同:
SELECT value
FROM nls_database_parameters
WHERE parameter = ‘NLS_CHARACTERSET’;
SELECT value
FROM nls_instance_parameters
WHERE parameter = ‘NLS_CHARACTERSET’;
如果两个值不同,请联系系统管理员,重新设置它们。
6)最后查看在系统上是否存在日期格式不匹配的问题:
SELECT*
FROMNLS_SESSION_PARAMETERS
WHERE PARAMETER=’NLS_DATE_FORMAT’;
如果格式不匹配,您可以尝试将 NLS_DATE_FORMAT 参数更改为和数据库中相匹配的格式,如:
ALTER SESSION SET NLS_DATE_FORMAT=’dd-mm-yyyy hh24:mi:ss’;
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341