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 2 of 9 Topic 9091 of 9520
Post > Topic >>

Re: How to check SQLCODE in trigger

by Serge Rielau <srielau@[EMAIL PROTECTED] > Jul 15, 2008 at 02:35 PM

lenygold via DBMonster.com wrote:
> I have an edit trigger:
> 
> --#SET TERMINATOR !
> CREATE TRIGGER EMPSCREDIT  
>    NO CASCADE BEFORE INSERT ON EMP_SCREEN_EDIT
>   REFERENCING NEW AS n 
>   FOR EACH ROW MODE DB2SQL 
>   BEGIN ATOMIC 
>     DECLARE reason VARCHAR(68); 
>     SET reason 
>       = CASE WHEN LENGTH(RTRIM(TRANSLATE(EMPNO, '*', ' 0123456789'))) <>
0
>               THEN '130 INVALID EMP NUMBER - MUST BE NUMERIC ' 
>              WHEN FIRSTNME <= '            '
>               THEN '146 FIRSTNME  IS MISSED' 
>              WHEN LENGTH(RTRIM(TRANSLATE(FIRSTNME, '*', '
> ABCDEFGHIGKLMNOPQRSTUVWXYZ'))) <> 0
>               THEN '146 INVALID FIRSTNME MUST BE ALPHABETIC' 
>              WHEN LENGTH(RTRIM(TRANSLATE(MIDINIT, '*', '
> ABCDEFGHIGKLMNOPQRSTUVWXYZ')))  <> 0
>               THEN '154 INVALID MIDINIT MUST BE SPACE OR ALPHABETIC' 
>              WHEN LASTNAME <= '               '
>               THEN '165 LASTNAME IS MISSED' 
>              WHEN LENGTH(RTRIM(TRANSLATE(FIRSTNME, '*', '
> ABCDEFGHIGKLMNOPQRSTUVWXYZ'))) <> 0
>               THEN '165 INVALID LASTNAME MUST BE ALPHABETIC' 
>              WHEN WORKDEPT NOT IN
('A01','BO1','C01','D11','D21','E01','E11',
> 'E21') 
>               THEN '177 INVALID DEPATRMENT, VALID -->
A01,B01,C01,D11,D21,E01,
> E11,E21' 
>              WHEN JOB NOT IN('ANALYST ','CLERK  
','DESIGNER','FEILDREP',
> 'MANAGER ‘OPERATOR','PRES    ','SALESREP') 
>               THEN '328 INVALID JOB DESCRIPTION'
>              WHEN EDLEVEL NOT IN(12,14,15,16,17,18,19,20)
>               THEN '345 INVALID EDUCATION LEVEL'
>              WHEN *** NOT IN ('M','F')
>               THEN '355 INVALID GENDER'
>              WHEN SALARY = 0
>               THEN '422 INVALID SALARY, MUST BE GREATER THAN ZERO' 
>              WHEN HIREDATE <= BIRTHDATE
>               THEN '292 HIREDATE MUST GREATER THAN BITHDATE'     
>              WHEN YEAR(HIREDATE) - YEAR(BIRTHDATE) < 18
>               THEN '292 HIRED EMPLOYEE MUST 18 OR OLDER'     
>              ELSE NULL END; 
>      IF reason IS NOT NULL THEN 
>          SIGNAL SQLSTATE '7500S' (reason);
>     END IF; 
>   END!               
> 
> Also there are date fields which are not part of check in edit.
> When date field is wrong system is genereting message:
> 
> The syntax of the string representation of a datetime value is incorrect
> sqlcode: -180 .
> 
> 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


-- 
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
 




 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 Tue Dec 2 20:47:05 CST 2008.