如何在DB2中的存储过程中编写函数
我能够在DB2中编写单独的存储过程和单独的函数。 我想在DB2中的存储过程中编写一个函数 请提供一个例子如何在DB2中的存储过程中编写函数,db2,Db2,我能够在DB2中编写单独的存储过程和单独的函数。 我想在DB2中的存储过程中编写一个函数 请提供一个例子 请注意,我不希望有任何示例创建存储过程和函数,并从存储过程调用函数。这是函数内部和存储过程内部存储过程的示例 --#SET TERMINATOR @ create or replace FUNCTION outer_fn ( ) returns integer begin declare in_val integer; declare out_val integer; d
请注意,我不希望有任何示例创建存储过程和函数,并从存储过程调用函数。这是函数内部和存储过程内部存储过程的示例
--#SET TERMINATOR @
create or replace FUNCTION outer_fn (
) returns integer
begin
declare in_val integer;
declare out_val integer;
declare procedure inner_sp (
in in_val integer,
out out_val integer)
begin
set out_val = in_val + 1;
end;
set in_val = 1;
call inner_sp(in_val, out_val);
return out_val;
end@
values outer_fn@
create or replace PROCEDURE outer_sp (
out out_val integer
)
begin
declare in_val integer;
declare procedure inner_sp (
in in_val integer,
out out_val integer
)
begin
set out_val = in_val + 1;
end;
set in_val = 1;
call inner_sp (in_val, out_val);
end
@
call outer_sp(?)
@
我不确定,但我认为不可能在过程或函数中定义函数
有关更多详细信息,可以检查在另一个存储过程中执行递归的过程
--#SET TERMINATOR @
create or replace FUNCTION outer_fn (
) returns integer
begin
declare in_val integer;
declare out_val integer;
declare procedure inner_sp (
in in_val integer,
out out_val integer)
begin
set out_val = in_val + 1;
end;
set in_val = 1;
call inner_sp(in_val, out_val);
return out_val;
end@
values outer_fn@
create or replace PROCEDURE outer_sp (
out out_val integer
)
begin
declare in_val integer;
declare procedure inner_sp (
in in_val integer,
out out_val integer
)
begin
set out_val = in_val + 1;
end;
set in_val = 1;
call inner_sp (in_val, out_val);
end
@
call outer_sp(?)
@
最后,还可以创建一个模块,其中包含一个已发布的存储过程,该存储过程调用同一模块中的“已添加”存储过程/函数。“添加的”对象在模块外部不可见/不可用。如果您指的是SQL-PL过程,则无法准确执行该操作。Db2用户定义函数(UDF)必须是与SQL-PL存储过程分开的对象,尽管可以在同一脚本中创建。但是,您可以创建一个“本地过程”(如中,在另一个SQL-PL存储过程中定义的存储过程)。对于不是用SQL-PL编写的存储过程,可以使用不同的选项,例如,在c/c++、rexx、java等中。