-2

我需要用一些 where 条件更新一个表。如果更新失败,那么我需要插入相同的内容。我在这里使用 shell 脚本中的文档来运行 sqlplus,请帮助我找到方法,以便在更新失败的情况下插入。

4

1 回答 1

0

将输出重定向到一个临时文件,不要忘记包含 stderr。然后您可以解析输出并查找特征。在您的 SQL 中,您还可以执行

select "SUCCESS" from dual;

最后,shell 脚本可以查找。

sqlplus user@db @my_sqlfile >output 2>&1
grep "SUCCESS" output

sqlplus 通常也会在输出中写入类似

N records updated.

因此,如果需要,您还可以检查是否有预期的更新。

请务必在您的 sql 文件中适当地设置选项,因为这会影响 sqlplus 将溢出的内容。

set term ...
于 2013-05-07T14:43:10.283 回答