Talk About Network

Google





Data Bases > IBM DB2 > Re: How to chec...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 9 Topic 9091 of 9564
Post > Topic >>

Re: How to check SQLCODE in trigger

by "lenygold via DBMonster.com" <u41482@[EMAIL PROTECTED] > Jul 15, 2008 at 11:36 PM

Thank you very much SERGE for your help.
I found example in Graeme Birchall COOKBOOK wich i think exactly what i
need
for SQL
check in triggers:

• User query joins to table function - sends DML or DDL statement to be
executed.
• Table function calls stored procedure - sends statement to be
executed.  
• Stored procedure executes statement.
• Stored procedure returns SQLCODE of statement to the table function.
• Table function joins back to the user query a single-row table with
two
columns: The
SQLCODE and the original input statement.

--#SET TERMINATOR !
CREATE PROCEDURE execute_immediate (IN in_stmt VARCHAR(1000)
,OUT out_sqlcode INTEGER)
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN
DECLARE sqlcode INTEGER;
DECLARE EXIT HANDLER FOR sqlexception
SET out_sqlcode = sqlcode;
EXECUTE IMMEDIATE in_stmt;
SET out_sqlcode = sqlcode;
RETURN;
END!

--#SET TERMINATOR !
CREATE FUNCTION execute_immediate (in_stmt VARCHAR(1000))
RETURNS TABLE (sqltext VARCHAR(1000)
,sqlcode INTEGER)
LANGUAGE SQL
MODIFIES SQL DATA 
BEGIN ATOMIC 
DECLARE out_sqlcode INTEGER; 
CALL execute_immediate(in_stmt, out_sqlcode);
RETURN VALUES (in_stmt, out_sqlcode); 
END!        

Then i tryied to test it:

select 1,stm.sqlcode as sqlcode, CHAR(stm.sqltext,100) as sqltext
         from sysibm.sysdummy1
        ,table(execute_immediate('select * from emp_screen_edit')) as stm;

and got the followung error:
sqlstate: 429BL
The function "EXECUTE_IMMEDIATE" (specific "SQL080715180239600") modifies
SQL
data and is invoked in an illegal context. Reason code =  "3
3. The table function is preceded by a table reference which is not
   referenced by a function argument.
Serge please help.
Thank's in advance 
Leny G.





Serge Rielau wrote:
>> I have an edit trigger:
>> 
>[quoted text clipped - 52 lines]
>> Is it possible to process this error code in the trigger and populate
reason
>> field.i
>
>In DB2 for LUW not directly. To do things like condition handling inside 
>of a trigger push the logic into a stored procedure and CALL that.
>The SQL Procedure has the full power of SQL PL at its disposal.
>
>Cheers
>Serge
>

-- 
Message posted via DBMonster.com
http://www.dbmonster.com/Uwe/Forums.aspx/ibm-db2/200807/1
 




 9 Posts in Topic:
How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-15 15:10:46 
Re: How to check SQLCODE in trigger
Serge Rielau <srielau@  2008-07-15 14:35:48 
Re: How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-15 23:36:21 
Re: How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-15 23:47:11 
Re: How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-16 00:33:51 
Re: How to check SQLCODE in trigger
Serge Rielau <srielau@  2008-07-15 21:33:12 
Re: How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-16 02:29:09 
Re: How to check SQLCODE in trigger
Serge Rielau <srielau@  2008-07-16 08:14:26 
Re: How to check SQLCODE in trigger
"lenygold via DBMons  2008-07-16 16:40:09 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
localhost-V2008-12-19 Wed Jan 7 21:53:41 PST 2009.