2016-12-13 2 views
0

Ich habe einen einfachen gespeicherten Prozess erstellt, um Werte in die dbc.AlertREquest-Tabelle einzufügen.Teradata Stored Procedure Einfügen von Daten Beispiel

Muss ich eine Ausnahmebehandlungslogik zum einfachen Einfügen von Werten in eine Tabelle schreiben?

Ich meine, muss ich die Ausnahmebehandlung für Einfügen Daten nicht erfolgreich schreiben. In diesem Fall, welche Art von SQLSTATE muss ich schreiben.

Bitte lassen Sie es mich wissen.

Bitte beachten Sie den folgenden Beispielcode.

REPLACE PROCEDURE XXXXXXXXX.ALERT_REQUEST_INSERT(IN p_JobName character(60), 
                                     IN p_JobDescription character(120), 
                                     IN p_ActionDestination character(120), 
                                     IN p_JobFullMessage character(600)) 
BEGIN 
    INSERT INTO dbcmngr.AlertRequest 
        ( 
         AlertRequest.ReqDate, 
         AlertRequest.ReqTime, 
         AlertRequest.JobName, 
         AlertRequest.Description, 
         AlertRequest.EventValue, 
         AlertRequest.ActionCode, 
         AlertRequest.RepeatPeriod, 
         AlertRequest.Destination, 
         AlertRequest.Message 
        ) 
     VALUES  
        (
         DATE, 
         TIME, 
         : p_JobName, 
         : p_JobDescription, 
         0, 
         '+', 
         0, 
         : p_ActionDestination, 
         : p_JobFullMessage 
       ); 
    END;      

Antwort

0
BEGIN 
    DECLARE EXIT HANDLER FOR SQLEXCEPTION 
    BEGIN 
    insert into your_trace_table(message) values (:SQLSTATE); 
    END; 
    -- your insert goes here 
END;