我需要使用sqlplus从powershell调用一组sql语句,包括实际的.sql脚本。之后,我需要捕获错误,不一定要捕获确切的退出代码,而至少要捕获存在一些oracle错误的事实。 这是Powershell中的调用:
Awesomium.Windows.Controls.dll
在$ sqlQuery内部,我将其设置为因错误而失败:
$sqlQuery | &sqlplus $connectionString
当脚本确实遇到某些错误时,它会正常失败并退出sqlplus:
whenever sqlerror exit sql.sqlcode
但是在执行脚本$ LASTEXITCODE时遇到此错误或任何其他Oracle错误之后,始终为0和$?永远是真的。我无法将sqlplus输出发送到任何脚本或变量中-为了在其中运行Powershell的应用程序的目的,我必须在屏幕上显示它,因此,我实际上没有选择检查输出是否为“ ORA-”错误。
问题是-为什么$ LASTEXITCODE和$是?像sqlplus这样的行为正确退出了,在这种情况下,我有什么选择来获取正确的失败状态?