Teradata 引发错误
Teradata Raise Error
我正在 teradata v16 中制作一个存储过程,需要我提出错误。我可以看到如何使代码捕获错误(见下文)但无法弄清楚如何像其他应用程序那样引发错误。有人可以告诉我如何引发错误吗?
BEGIN
DECLARE SQL_ERR_CDE INTEGER;
DECLARE SQL_STATE INTEGER;
DECLARE TMPMSG VARCHAR(133);
L1: BEGIN
DECLARE EXIT HANDLER FOR SqlException
BEGIN
SET SQLERRCDE = SqlCode;
SET SQLSTTE = SqlState;
SET SQLMSG = TMPMSG;
SET SQL_ERR_CDE = SqlCode;
SET SQL_STATE = SqlState;
INSERT INTO DW.ERR_STD_PRC_LOG
VALUES ('DW', 'SP_INDEX_STATS' , 'E' , :SQL_ERR_CDE,:SQL_STATE, :TMPMSG, DATE, TIME);
END;
您尝试过 ABORT 吗?这应该会导致 SP 调用出错,无论您想要包含什么消息:
ABORT 'Error Message';
此外,请看一下如何使用 SIGNAL:Teradata: How can I raise an error in a stored procedures
我正在 teradata v16 中制作一个存储过程,需要我提出错误。我可以看到如何使代码捕获错误(见下文)但无法弄清楚如何像其他应用程序那样引发错误。有人可以告诉我如何引发错误吗?
BEGIN
DECLARE SQL_ERR_CDE INTEGER;
DECLARE SQL_STATE INTEGER;
DECLARE TMPMSG VARCHAR(133);
L1: BEGIN
DECLARE EXIT HANDLER FOR SqlException
BEGIN
SET SQLERRCDE = SqlCode;
SET SQLSTTE = SqlState;
SET SQLMSG = TMPMSG;
SET SQL_ERR_CDE = SqlCode;
SET SQL_STATE = SqlState;
INSERT INTO DW.ERR_STD_PRC_LOG
VALUES ('DW', 'SP_INDEX_STATS' , 'E' , :SQL_ERR_CDE,:SQL_STATE, :TMPMSG, DATE, TIME);
END;
您尝试过 ABORT 吗?这应该会导致 SP 调用出错,无论您想要包含什么消息:
ABORT 'Error Message';
此外,请看一下如何使用 SIGNAL:Teradata: How can I raise an error in a stored procedures