【发布时间】:2020-09-30 11:52:57
【问题描述】:
我已经花了几个小时尝试各种建议和组合,但在我的一生中,无法从直接 linux 命令行或 bash 脚本调用 sqlplus 以使用包含 $ 的密码
这些我都试过了
sqlplus -S mylogin/'"my$password"'@My_DBName
sqlplus -S mylogin/'my$password'@My_DBName
sqlplus -S mylogin/"my$password"@My_DBName
我已经尝试了与上面相同的方法,但将 \ 放在 $ 之前,并且未显示其他各种尝试...
尝试使用 CONNECT 代替纯密码,以及各种引号和反斜杠(此处仅显示一个示例)
sqlplus -S /nolog << EOF
CONNECT mylogin/my$password@My_DBName;
sqlplus -S /nolog << EOF
CONNECT mylogin/'"my$password"'@My_DBName;
我确实知道一般 sqlplus 命令作为单个命令,或与 CONNECT 一起适用于不包含 $ 的密码。
谁能告诉我我做错了什么以及为什么?如果是这样,我非常感谢你!
已编辑 - 我的坏 - 啊!
原来有人更改了密码。事实上,它甚至可以使用 $ 并指定单引号,例如:
sqlplus -S mylogin/'my$password'@My_DBName
【问题讨论】:
-
您的 4 位 Oracle 版本是多少?什么是操作系统?例如,在 Linux 上使用 Oracle 12.2.0.1 和
bash将密码放在单引号之间应该可以工作。 -
如果您不确定 shell 在做什么,请将您的 sqlplus 命令放入 shell 脚本并添加脚本
set -x以检查 shell 正在运行的完整 sqlplus 命令。 -
我应该说!! ...“确实有效”表示由于“ORA-01017:用户名/密码无效;登录被拒绝”而无法登录。仅供参考 linux 2.6.32-754.9.1.el6.x86_64 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
标签: linux oracle passwords sqlplus