启动 sqlplus 实用程序并执行查询、收集输出的 Shell 脚本

启动 sqlplus 实用程序并执行查询、收集输出的 Shell 脚本

我正在尝试这样做:

在示例.sh中:

#!/bin/bash
sqlplus / as sysdba
select * from dual;

当我运行这个 shell 脚本时,它会打开 sqlplus 实用程序,但它无法执行我编写的下一行。当我手动退出 sqlplus 时,只有 shell 执行剩余的行,并且我收到错误消息,指出“Select * from Dual”不是有效的命令。

如何让脚本执行 SQL 文本之内sqlplus 的上下文?

答案1

要运行 sql 脚本,sqlplus您需要按以下方式执行:

#!/bin/bash
sqlplus / as sysdba <<EOF
select * from dual;
exit
EOF

或者您可以将 sql 命令放入脚本中,如下所示:

# cat a.sql
select * from dual;
exit

并以此方式运行命令:

#!/bin/bash
sqlplus / as sysdba @a.sql

相关内容