SQLPlus:在脚本中使用特殊字符作为密码
Posted
技术标签:
【中文标题】SQLPlus:在脚本中使用特殊字符作为密码【英文标题】:SQLPlus: using special character for password in script 【发布时间】:2014-07-28 08:03:38 【问题描述】:我对密码中的特殊字符“@”有疑问。 我不知道如何将带有此特殊字符的密码传递给脚本文件并使用 sqlplus 连接的问题。
例如,我有用户“test_user”,密码为“temp123@”。对于通过 sqlplus 登录,我使用以下带有转义的字符串:sqlplus test_user/\"temp123@\"@some-db:1521/SID
效果很好。对于我的情况,我需要将密码作为 sql 脚本的参数传递。例如,我有以下脚本来连接(实际上是使用几对登录名/密码来一次更新许多用户的脚本):
-- @deploy.sql
connect &&2./&&3.@&&1.
由于 sqlplus 无法正确解释带有“@”的密码,因此失败。我尝试了许多来自 google 的转义建议,但其中大部分都适用于 sqlplus 调用时的连接字符串。对于我来说,它需要传递给脚本的参数。
【问题讨论】:
【参考方案1】:使用:cmd.exe 而不是 powershell 窗口
if not :
在 powershell 窗口中:sqlplus 'login/\"P@$$w0rd\"@TNS_NAME'
在cmde.exe中:sqlplus login/\"P@$$w0rd\"@TNS_NAME
【讨论】:
【参考方案2】:连接字符串中只需要引号:
connect &&2./"&&3."@&&1.
【讨论】:
以上是关于SQLPlus:在脚本中使用特殊字符作为密码的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE 用户的 密码 支持哪些特殊字符,不支持哪些字符?