我正在尝试这样做:
在示例.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