sqlplus 没有正确结束脚本
sqlplus not properly ended script
我有一个 plsql 脚本,它没有正确终止:
create or replace package mypackage
... (no semicolon/forward slash at the end)
脚本在 windows powershell 上使用 sqlplus (12.1) 执行:
sqlplus user/pass@host @my_not_properly_ended_file.pks
我希望 sqlplus 以退出代码 1 和一条错误消息终止,但它会提示输入。
在这种情况下我如何获得错误消息和退出代码?
编辑:解决方案还应该适用于不以分号结尾的 dml 语句。
您可以使用 shell 重定向代替 @
:
sqlplus user/pass@host < my_not_properly_ended_file.pks
如果脚本没有以 exit
命令结束,这也将阻止它获得 'stuck'。
但是,在任何一种情况下,它都不会 return 向 shell 发送错误代码。就 SQL*Plus 而言,您将不完整的语句放入其缓冲区但从未尝试执行它(因为没有斜线);因为它没有 运行,所以它没有错误。所以设置 whenever sqlerror
或其他设置也不会产生任何影响。
我有一个 plsql 脚本,它没有正确终止:
create or replace package mypackage
... (no semicolon/forward slash at the end)
脚本在 windows powershell 上使用 sqlplus (12.1) 执行:
sqlplus user/pass@host @my_not_properly_ended_file.pks
我希望 sqlplus 以退出代码 1 和一条错误消息终止,但它会提示输入。
在这种情况下我如何获得错误消息和退出代码?
编辑:解决方案还应该适用于不以分号结尾的 dml 语句。
您可以使用 shell 重定向代替 @
:
sqlplus user/pass@host < my_not_properly_ended_file.pks
如果脚本没有以 exit
命令结束,这也将阻止它获得 'stuck'。
但是,在任何一种情况下,它都不会 return 向 shell 发送错误代码。就 SQL*Plus 而言,您将不完整的语句放入其缓冲区但从未尝试执行它(因为没有斜线);因为它没有 运行,所以它没有错误。所以设置 whenever sqlerror
或其他设置也不会产生任何影响。