Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


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

Re: How to check SQLCODE in trigger

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

Here is exable from book how to use this UDF/SP COMBO:

WITH temp1 AS
(SELECT tabschema
,tabname
FROM syscat.tables
WHERE tabschema = 'FRED'
AND type = 'S'
AND status = 'C'
AND tabname LIKE '%DEPT%'
)
SELECT CHAR(tab.tabname,20) AS tabname
,stm.sqlcode AS sqlcode
,CHAR(stm.sqltext,100) AS sqltext
FROM temp1 AS tab
,TABLE(execute_immediate(
'REFRESH TABLE ' ||
RTRIM(tab.tabschema) || '.' || tab.tabname
))AS stm
ORDER BY tab.tabname
WITH UR;

lenygold wrote:
>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.
>
>>> I have an edit trigger:
>>> 
>[quoted text clipped - 8 lines]
>>Cheers
>>Serge

-- 
Message posted via http://www.dbmonster.com
 




 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
tan12V112 Fri Sep 5 7:05:40 CDT 2008.