在我的docker容器里我试着-
1.在sqlplus中停止数据库
1.在特定目录下运行命令
1.重新启动数据库
下面是我正在尝试的示例脚本,但它给了我类似命令未找到的错误。请在这件事上帮帮我
#!/bin/bash
if [[ $(sqlplus -L sys/$TIA_SYS_PWD@tia as sysdba <<< "select * from v\$option where PARAMETER = 'Unified Auditing';" | grep FALSE) == *FALSE* ]]; then
sqlplus -L -S / as sysdba <<< "shutdown immediate"
cd $ORACLE_HOME/rdbms/lib; make -f ins_rdbms.mk uniaud_on ioracle
sqlplus -L -S / as sysdba <<< "startup"
sqlplus -L sys/$TIA_SYS_PWD@tia as sysdba <<< "select * from v\$option where PARAMETER = 'Unified Auditing';"
else
echo "Unified Auditing already enabled"
fi
错误消息已附加x1c 0d1x
1条答案
按热度按时间roejwanj1#
通常,从bash脚本与数据库对话的最佳方式是使用HERE文档
https://tldp.org/LDP/abs/html/here-docs.html
举个例子
你将需要命令行参数和heredoc中的'set'调用来适应你的特定用例,但是 whenever sqlerror 子句对于检查脚本中sql语句的返回代码很有用。
这不仅适用于sqlplus,还适用于许多其他类型的数据库引擎。