linux 脚本中嵌入的 SQLPLUS 无法按预期工作
SQLPLUS embedded in linux script does not work as expected
我在 Linux 脚本中有以下脚本段:
sqlplus /
<<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1
我期待更新和脚本退出 sqlplus
实际发生的是查询未执行,脚本退出,sqlplus 登录到我的数据库并显示 SQL> 提示。我可以根据提示执行语句,当然,这不是我想要做的。
我当前的 Oracle 版本是 12.2.0.1
HERE 文档的输出用于 sqlplus 的标准输入,但对于 shell 命令应该在一行上。添加反斜杠将使 shell 忽略行尾,将两个物理行合并为一个逻辑行:
sqlplus / \
<<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1
或者只是:
sqlplus / <<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1
我在 Linux 脚本中有以下脚本段:
sqlplus /
<<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1
我期待更新和脚本退出 sqlplus
实际发生的是查询未执行,脚本退出,sqlplus 登录到我的数据库并显示 SQL> 提示。我可以根据提示执行语句,当然,这不是我想要做的。
我当前的 Oracle 版本是 12.2.0.1
HERE 文档的输出用于 sqlplus 的标准输入,但对于 shell 命令应该在一行上。添加反斜杠将使 shell 忽略行尾,将两个物理行合并为一个逻辑行:
sqlplus / \
<<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1
或者只是:
sqlplus / <<QUERY_1
UPDATE BATCH_FILE SET BATCH_ID = 0 WHERE BATCH_ID = -1;
COMMIT;
exit
QUERY_1