我使用 db2 9.7.6 full edition for windows。我需要开发可用于 sql 选择表达式的函数。函数必须包含修改 sql 数据和处理运行时异常。有两种变体,但我遇到了实现变体中所有要求的问题。第一个变体是 sql 表函数的实现,例如
CREATE FUNCTION func1 (val CHAR(20))
RETURNS table(result varchar(1000))
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN atomic
insert into a values(val);
return (select result from a);
END
它可以工作,但我无法在 sql 过程中实现处理异常。当我尝试使用块“声明退出处理程序”时,出现语法错误。第二个变体是 pl/sql 函数的实现,例如
CREATE OR REPLACE FUNCTION bb
RETURN varchar2
MODIFIES SQL DATA
AS
BEGIN
insert into st values ('a');
return 0;
END bb;
但是当我尝试执行此函数时,我收到错误“SQLCODE=-740, SQLSTATE=51034 是使用 MODIFIES SQL DATA 选项定义的,这在调用例程的上下文中无效”。请帮帮我。最好的问候,Turkin Andrew。