我正在尝试在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@
答案 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平台移植。