如何在没有 sqlplus 挂在我身上的情况下执行 Oracle SQL 脚本?

Mar*_*tin 6 oracle sqlplus

对于自动化任务,我非常想运行一些 SQL 脚本并确保sqlplus在任何情况下都不会挂起,即:

  • 如果脚本包含任何必须由用户输入的命名替换变量,sqlplus 应该返回错误而不是提示输入变量——我不能使用set define off,因为其中一些脚本需要接受命令行参数解决了&1
  • 当脚本exit;末尾不包含 an 时,它不能“挂起” 。

    已解决:我认为现在我可以通过将 sql-script 包装在辅助“调用者脚本”中来实现这一点。即,调用者脚本调用另一个脚本,@然后有一个固定的exit;。另一个脚本不需要那样退出。

  • 其他任何东西:如果需要提示,它应该返回一个错误。

我怎样才能用 Oracle(和sqlplus或其他东西)做到这一点?

Col*_*art 1

当您将 SQL 命令嵌入 shell 脚本并将它们通过管道传输到 SQL*Plus 实例时,您可以在 Linux/Unix 下执行此操作。