The RAISE_ERROR Function

 <  Day Day Up  >  

The RAISE_ERROR Function

The RAISE_ERROR function is a different type of function than we have discussed so far. It is not a column function because it does not take a group of rows and return a single value. Nor is RAISE_ERROR truly a scalar function because it does not transform column data from one state to another.

Instead, the RAISE_ERROR function is used to raise an error condition in the SQLCA. The user supplies the SQLSTATE and error description for the error to be raised. The error will be raised with the specified SQLSTATE and a SQLCODE of “438 .

The RAISE_ERROR function can be used to signal application program and data problems. One situation where RAISE_ERROR may prove useful is in a CASE statement such as

 

 SELECT EMPNO,   CASE WHEN SEX = 'M' THEN 'MALE  '        WHEN SEX = 'F' THEN 'FEMALE'  ELSE  RAISE_ERROR('70SX1', 'INVALID DATA, SEX IS NEITHER F NOR M.')    END    FROM DSN8810.EMP; 

The value specified for SQLSTATE must conform to the following rules:

  • The value must be a character string of exactly five characters in length.

  • Only the characters '0' through '9' and uppercase 'A' through 'Z' may be used.

  • The first two characters cannot be '00' , '01' , or '02' .

  • If the first character is '0' through '6' or 'A' through 'H' , the last three characters must start with a letter from 'I' through 'Z' .

  • If the first character is '7' , '8' , '9' , or 'I' though 'Z' , the last three characters can be any valid character.

NOTE

Technically, the RAISE_ERROR function does return a value. It always returns NULL with an undefined data type. You must use the CAST function to cast it to a defined data type to return the value to a program.


 <  Day Day Up  >  


DB2 Developers Guide
DB2 Developers Guide (5th Edition)
ISBN: 0672326132
EAN: 2147483647
Year: 2004
Pages: 388

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net