在使用oracle数据库的时候,我们经常会利用exp工具对某些表进行导出。但有些时候,因我们用户密码为安全性设有特殊字符,导致exp导出时候报:“EXP-00056和ORA-12154”,今天我们就分享下如何通过设置符号隔离的小技巧解决相应问题。
一、问题现场
1.1,修改用户
我们修改用户密码,使密码带有特殊字符@和.。
1.2,问题出现
我们利用exp开始导出数据
可以看到,我们直接导出,oracle提示错误:EXP-00056: ORACLE error 12154 encountered
ORA-12154: TNS:could not resolve the connect identifier specified。
二、问题解决
如果用户密码中存在特殊字符,特别像@这类等,oracle一般会认为为其内置符号意义,导致密码验证失败。如我们这里,@符号被认定为连接标识符的分割符,而实际上我们并没有这个连接标识符,导致验证失败。
linux中,我们可以通过如下形式进行密码分割,以便解决问题:
exp '用户名/"密码"@连接标识符' file=test.dmp
实测:
可以看到,我们的数据表被实时导出,测试成功。
windows中,我们可以使用如下形式进行密码分割():
exp 用户名/"""密码"""@连接标识符 file=test.dmp