我正在编写一个脚本来更改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命令有关 . 如何通过我的脚本修复此命令以使密码更改成功?
1 回答
由于您在
connect
字符串中用双引号括起旧密码,因此旧密码和新密码似乎都有特殊字符 . 你得到的错误与任何一个带有感叹号的密码一致;但也可以以数字开头,有多字节字符等 .From the documentaton:
所以,也将它们包含在_361229中: