执行下面一段语句时
declare
v_num number;
variable a number;
begin
select i into v_num from test where i=mp(1,1,:a);
dbms_output.put_line(v_num);
end;
--出现下面的错误
第 3 行出现错误:
ORA-06550: 第 3 行, 第 12 列:
PLS-00103: 出现符号 "NUMBER"在需要下列之一时:
:= . ( @ % ; not null
range default character
符号 ":=" 被替换为 "NUMBER" 后继续。
---------------------------------------
mp是一个存储过程,代码如下:
create or replace procedure mp(a1 in number,a2 in number,a3 out number)
as begin
a3:=a1+a2;
end mp;
请问函数如何能调用到过程的返回值呢
declare
v_num number;
variable a number;
begin
select i into v_num from test where i=mp(1,1,:a);
dbms_output.put_line(v_num);
end;
--出现下面的错误
第 3 行出现错误:
ORA-06550: 第 3 行, 第 12 列:
PLS-00103: 出现符号 "NUMBER"在需要下列之一时:
:= . ( @ % ; not null
range default character
符号 ":=" 被替换为 "NUMBER" 后继续。
---------------------------------------
mp是一个存储过程,代码如下:
create or replace procedure mp(a1 in number,a2 in number,a3 out number)
as begin
a3:=a1+a2;
end mp;
请问函数如何能调用到过程的返回值呢
v_num number;
variable a number;
v_a number;
begin
select i into v_num from test where i=mp(1,1,v_a);
:a := v_a;
dbms_output.put_line(v_num);
end;
create or replace function vp(a1 in number,a2 in number)
return number
is
a3 number;
begin
a3:=a1+a2;
return a3;
end vp;
调用时执行正确,不过我如果想从过程调用该如何操作呢(因为mp是从过程中截取的一段代码)
v_num number;
a number;
begin
mp(1,1,a);
select i into v_num from test where i=a;
dbms_output.put_line(v_num);
end;
/
v_num number;
a number;
begin
mp(1,1,a);
select a into v_num from dual where a = 2;
dbms_output.put_line(v_num);
end;