Error handling teradata SP中的错误处理
我曾经使用以下代码获取错误号和错误消息:Error handling teradata SP中的错误处理,error-handling,exception-handling,teradata,Error Handling,Exception Handling,Teradata,我曾经使用以下代码获取错误号和错误消息: DECLARE EXIT HANDLER FOR SQLException BEGIN ROLLBACK/ABORT; SET ERROR_MESSAGE = TMPMSG; SET ERROR_NUMBER = SQLCODE; OPEN cur1; LEAVE #MAIN#; END; 更新: DECLARE EXIT HANDLER FOR S
DECLARE EXIT HANDLER FOR SQLException
BEGIN
ROLLBACK/ABORT;
SET ERROR_MESSAGE = TMPMSG;
SET ERROR_NUMBER = SQLCODE;
OPEN cur1;
LEAVE #MAIN#;
END;
更新:
DECLARE EXIT HANDLER FOR SQLException
BEGIN
ROLLBACK/ABORT;
GET DIAGNOSTICS EXCEPTION 1 ErrMsg_value = MESSAGE_TEXT ;
SET ErrCode_value = SQLCODE ;
end;
但我也需要以下信息:
ERROR_SEVERITY
ERROR_STATE
ERROR_PROCEDURE
ERROR_LINE
是否仍要执行此操作?由于异常会导致回滚,因此可能不需要中止(除非在某些情况下运行ANSI模式会话)。如果需要,应在GET DIAGNOSTICS(获取诊断)后执行,因为它会重置诊断区域
:没有严重性(只有BTEQ支持此概念)错误\u严重性
,ERROR\u STATE
,ERROR\u PROCEDURE
:这些变量是SQL Server语法,在标准SQL/Teradata SQL中不存在ERROR\u LINE
TMPMSG
?只有SQLCODE
是内置变量。您最好使用GET DIAGNOSTICS
获取错误信息。好的,请查看更新的内容。就像这样?谢谢@dnoeth:)