db2函数中的raise_application_error

时间:2013-08-09 09:42:53

标签: sql error-handling db2

我正在尝试在db2函数中使用raise_application_error,如下所示。

当我尝试创建该函数时,db2告诉我以下

   An unexpected token "raise_application_error" was found following 
   "id is null then ".  Expected tokens may include:  "RETURN".  LINE

是允许在函数中使用它还是仅用于存储过程?

什么是功能的有效替代品?

     create or replace function get_stuff(id integer)
     returns varchar(10)
     language sql reads sql data
     begin    
             declare toreturn   varchar(10);

             if id Is null then
                   raise_application_error(-20000,'Id Missing)
             end if;
             --set (toreturn)=select ...///
             return toreturn;
     end@

2 个答案:

答案 0 :(得分:1)

如果您正在编写IBM SQL PL,则应定义信号的文本

SIGNAL SQLSTATE VALUE '20000'
 SET MESSAGE_TEXT = 'Id Missing';

如果您在DB2中编写PL / SQL,则应确保兼容性向量设置为ORA:http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.porting.doc/doc/r0052867.html

答案 1 :(得分:0)

您获得的语法错误是由于缺少撇号来终止字符串'Id Missing'。

然而,请参阅AngocA对提高病情的正确方法的回答。他的语法可以跨DB2平台移植。