首次连接SQL Developer报错:ORA-00604与ORA-12705故障排查
解决SQL Developer连接时的ORA-00604 + ORA-12705错误
这个错误我碰到过好多次了,本质是**NLS(国家语言支持)**相关的配置出了问题——要么Oracle客户端找不到对应的语言数据文件,要么系统/工具的环境变量设置和数据库不匹配。下面是几个靠谱的解决办法,按顺序试就行:
1. 检查并配置NLS_LANG环境变量
这是最常见的原因,先搞定这个:
- 第一步,先确认你的Oracle数据库用的字符集:登录数据库执行这条SQL:
SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'; - 第二步,设置
NLS_LANG环境变量,格式是[语言]_[地区].[字符集],比如数据库字符集是AL32UTF8,中文环境就设成SIMPLIFIED CHINESE_CHINA.AL32UTF8,英文环境就用AMERICAN_AMERICA.AL32UTF8 - 设置方式:
- Windows:右键「此电脑」→属性→高级系统设置→环境变量,新建系统变量
NLS_LANG,填入对应值,然后重启SQL Developer - Linux/macOS:终端执行
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8(临时生效),或者把这条命令加到~/.bashrc/~/.zshrc里永久生效,之后重启终端和SQL Developer
- Windows:右键「此电脑」→属性→高级系统设置→环境变量,新建系统变量
2. 调整SQL Developer的NLS偏好设置
有时候工具本身的语言配置不对也会触发这个错误:
- 打开SQL Developer,依次点击「Tools」→「Preferences」→「Database」→「NLS」
- 把这里的
NLS_LANGUAGE、NLS_TERRITORY、NLS_CHARACTERSET改成和数据库端一致的,或者改成你系统支持的选项,保存后重启SQL Developer
3. 验证Oracle客户端的NLS数据文件是否完整
如果你用的是Oracle Instant Client,得确认文件没缺:
- 找到你的Instant Client安装目录,检查有没有
nls/data文件夹,里面应该有一堆lx*开头的语言数据文件 - 如果缺失,要么重新下载完整的Instant Client包,要么单独下载NLS扩展包,解压到Instant Client目录下覆盖对应文件夹
4. 检查系统区域/语言设置
系统层面的语言不兼容也可能导致这个问题:
- Windows:打开控制面板→区域→管理→更改系统区域设置,选择你常用的语言(比如中文简体),重启电脑后再尝试连接
- Linux/macOS:检查系统语言设置,确保当前语言环境是Oracle支持的(比如中文、英文)
要是上面的方法都试过还不行,建议试试重新安装SQL Developer,或者换个版本的Oracle客户端——有时候版本不兼容也会搞出这种奇怪的NLS错误。
内容的提问来源于stack exchange,提问作者student
相关产品推荐
相关产品推荐

