我正在使用SqlPlus运行sql脚本的代码。大多数脚本中都有DDL,它需要一个/(正斜杠)来运行缓冲区。有些脚本缺少斜杠。我曾尝试运行脚本(如@ script.sql和/),但它有时会尝试创建两次。我还想在最后运行show errors命令,有时如果/缺失,会给我造成麻烦。有没有办法确定sqlplus缓冲区是否已经发送到服务器?
所以,我改为@script。 (期间)显示错误。当/存在于文件中时,这是有效的,但是现在,如果文件中缺少/,如果通过不创建对象而混乱。
我们尝试了一些逻辑来检查/在文件中结束,但在我看来这是一个混乱的选项。我有误报,这不是一个完美的解决方案。
我曾考虑尝试使用另一种工具来运行,但由于我工作的公司已经发布了这个版本,并且客户希望它能够使用sqlplus运行,并且可能包含只能在sqlplus中运行的命令;那不符合JDBC,我认为这不是一个适当的解决方案。
我现在在想,如果我可以检查/是否已经在当前的缓冲区上运行,并且只有在没有的情况下运行,那么这将是一个很好的解决方案,也许是完美的,但是我找不到任何文档这样的命令存在。还有另一种解决问题的方法吗?这样的命令是否存在? 谢谢!
这是一个很好的答案,谢谢。我没有想过如果/那么缺乏。这真的是一个限制。我感谢你的时间和答复。 –