我有一个oracle sqldeveloper文件。
当我使用批处理文件运行它时,如果遇到错误,cmd肯定会显示错误。
我想要的是,是否可以将cmd错误作为输入来触发我的自定义错误消息?
如果在cmd中显示任何错误,例如:
Parameter not found
批处理文件中的自定义错误消息将在cmd:
中触发此错误消息You Got An Error!
任何帮助和建议都表示赞赏..
提前致谢!
答案 0 :(得分:0)
您可以将输出(stdout和stderr)重定向到文本文件(如果您不关心输出,则重定向到nul
),并在脚本具有后检查`%ERRORLEVEL%的值已被执行。如果它不是0,则显示您自己的错误消息。
重定向stdout和stderr:
command parameters 1>>c:\log.txt 2>&1
答案 1 :(得分:0)
我建议使用SQL * Plus而不是SQL Developer。您可以将WHENEVER SQLERROR EXIT FAILURE添加到脚本的顶部(如果您对特定的错误代码感兴趣,则可以添加EXIT SQL.SQLCODE)。然后调用批处理文件将收到%ERRORLEVEL%中的错误代码,您可以适当地采取措施。如果您的SQL脚本与操作系统接口并且可能存在故障,那么还有WHEREVER OSERROR EXIT FAILURE。
我不认为SQL * Plus使用stderr,因此我认为您不必担心重定向2>& 1。