嵌入到linux脚本中的SQLPLUS不能如期工作。

问题描述 投票:0回答: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。

linux oracle sh sqlplus
1个回答
1
投票

HERE-文档的输出是为了sqlplus的std输入,但是对于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
© www.soinside.com 2019 - 2024. All rights reserved.