【发布时间】:2018-07-09 14:51:57
【问题描述】:
我正在编写一个脚本来更改 Oracle 数据库的密码。我成功地获得了数据库名称、user_id、旧密码和新密码。我有这个命令可以更改旧密码并将其设置为新密码:
sqlplus -s /nolog << EOF
connect ${USER_ID}/"${OLD_PASS}"@${DB_NAME}
alter user ${USER_ID} identified by ${NEW_PASS} replace ${OLD_PASS};
/
exit
EOF
当我将结果存储到变量中并打印出变量时,我收到一条错误消息:
ORA-00922:缺少或无效选项。
我相信这与 alter user 命令有关。如何修复此命令,以便通过我的脚本成功更改密码?
【问题讨论】:
-
没有看到你如何设置变量,以及它们的实际值是什么,我们只能猜测你做错了什么。
-
变量已经过测试并包含用户的适当凭据,并且 DB_NAME 也包含正确的数据库
-
除了 Alex 所说的引用变量之外,您不应该在
alter语句之后使用/。这将导致重新运行相同的语句,这将失败,因为现在您的旧密码不一样了。