For the archives, this is what I ended up putting in:
    DECLARE SQLERRM VARCHAR ( 4000 ) DEFAULT '' ;
    Declare this_proc varchar(120)
        Default 'CcdLib/procedureName';  
    DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
        BEGIN
          GET DIAGNOSTICS EXCEPTION 1 SQLERRM = MESSAGE_TEXT ;
          Set errorMessage = 'Exit Handler for sqlException: Message : '
                              || SQLERRM;
          SET rtnOutParm = -1;
          INSERT INTO SPErrLogP
                      (StoredProc, ErrorMsg, Parm1, Parm2)
               VALUES(this_Proc, errorMessage, inAlphaParm, char(inNumericParm))
               WITH NC;
        END ;
rtnOutParm is, as implied, an output parameter on the Stored Procedure.  It's defined as an Integer.
I created SPErrLogP to house any errors encountered by our (pure) SQL Stored procedures.  I gave the file 10 parameter fields, we haven't hit that many parms on a stored procedure yet.
-Kurt
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Anderson, Kurt
Sent: Friday, March 22, 2013 9:28 AM
To: Midrange Systems Technical Discussion
Subject: RE: Error handling in SQL Stored Procedure
Thanks for the responses.
I may have overcomplicated this (or under-thought it).  
I'm working on a stored procedure that is pure SQL.  So it's not SQL embedded in RPG.  I was using Run SQL Scripts from iNavigator to test my stored procedure and it returned a message about a duplicate record.  It gave me the impression that the stored procedure had a hard stop on the failed statement.  But if it's like how SQL runs in RPG, I suppose it wouldn't stop, and I can check the SQL State as I would have in RPG.
I just got done wrapping most SQL we send to SQL Server in a Try/Catch so I was looking for something to that extent.
I haven't had a chance to apply any ideas proposed yet.  Will hopefully get back to that project this afternoon.
I found the error handling section in the redbook on Stored Procedures (etc), thanks Vern.
Thanks,
Kurt
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Mark S Waterbury
Sent: Thursday, March 21, 2013 11:12 PM
To: Midrange Systems Technical Discussion
Subject: Re: Error handling in SQL Stored Procedure
Hi, Kurt:
Try this google search:    "os/400 db2 error handling in embedded 
sql"    (without the quotes)
The first link:
     
http://www.mcpressonline.com/tips-techniques/sql/techtip-simple-error-handling-in-embedded-sql.html
     appears to be a good intro.
See also the Redbook"Stored Procedures, Triggers and User-Defined Functions on DB2 UDB for iSeries"
:
     
http://www.redbooks.ibm.com/abstracts/sg246503.html
mentioned in a previous reply by Vern Hamburg.
HTH,
Mark S. Waterbury
On 3/21/2013 4:44 PM, Anderson, Kurt wrote:
I'm at IBM i 7.1 and I just created a stored procedure to insert a record into a file (and return the identity created).  However, I'm not sure how to apply error handling (to monitor for such things as a duplicate record error).    I ran a bunch of searches, but I must not be using the right words.  I've looked for Exception, Error handling, try, catch, and monitor.
I'm using this document as my main source of info:  
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/db2/rbafz.pdf
Can anyone show me the path toward error handling in SQL on the IBM i?
Thanks,
Kurt
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at 
http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at 
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.