You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expdp密码含@等特殊字符触发ORA-12154错误解决方案咨询

Oracle expdp密码含特殊字符@报ORA-12154的解决方案

  • 方案1:交互式输入密码(最稳妥,适合单次操作)
    执行命令时不将密码拼接在命令行中,仅输入用户名和连接串,执行后按提示输入密码即可,命令参考:
expdp system@hostname:portnumber/servicename schemas=soso directory=xyz dumpfile=mydump.dmp logfile=mylog.log

执行后终端会提示Password:,直接输入带特殊字符的密码回车即可,完全避开特殊字符解析问题。

  • 方案2:将完整连接串用引号包裹(适合命令行单次执行)
    之前只包裹密码的方式无法避免shell将密码内的@识别为连接串分隔符,需要将「用户名/密码@连接串」整体用引号包裹,不同系统用法不同:

    • Linux/Unix 环境用单引号包裹:
      expdp 'system/yada@yada1233*something@hostname:portnumber/servicename' schemas=soso directory=xyz dumpfile=mydump.dmp logfile=mylog.log
      
    • Windows cmd 环境用双引号包裹:
      expdp "system/yada@yada1233*something@hostname:portnumber/servicename" schemas=soso directory=xyz dumpfile=mydump.dmp logfile=mylog.log
      
  • 方案3:使用参数文件(最适合批量服务器操作)
    将所有配置写入expdp参数文件,完全避开命令行特殊字符解析问题,适合批量处理多服务器场景:

  1. 新建参数文件expdp.par,写入以下内容:
userid=system/"yada@yada1233*something"@hostname:portnumber/servicename
schemas=soso
directory=xyz
dumpfile=mydump.dmp
logfile=mylog.log
  1. 执行命令调用参数文件:
expdp parfile=expdp.par

批量操作时只需批量生成对应服务器的参数文件,再遍历执行即可。

  • 方案4:配置TNS别名简化连接
    在tnsnames.ora中添加目标数据库的TNS别名配置,例如配置别名target_db指向hostname:portnumber/servicename,之后执行命令即可简化为:
expdp 'system/yada@yada1233*something@target_db' schemas=soso directory=xyz dumpfile=mydump.dmp logfile=mylog.log

内容的提问来源于stack exchange,提问作者GBA_Switch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:27:03