动态确定返回类型比较困难
create function get
return varchar2
as
a varchar2(10);
begin
select fn into a from func where fn='...';
return a;
end;
/
create function get
return varchar2
as
a varchar2(10);
begin
select fn into a from func where fn='...';
return a;
end;
/
类似下面的写法!create function get
return varchar2
as
a varchar2(10);
begin
select fn into a from func where id='1';
execute immdiate a into b;
return b;
end;
2 (av out number)
3 IS
4 BEGIN
5 av:= 99;
6 END;
7 /过程已创建。SQL> CREATE OR REPLACE PROCEDURE TOKU.MYPR2
2 (av out varchar2)
3 IS
4 lvr number(3);
5 lvn varchar2(10);
6 lvsql varchar2(100);
7 lvtblnm varchar2(10);
8 BEGIN
9 select 'mypr(:a)' into lvtblnm from dual; -- 使用你自己的表
10 execute immediate 'begin ' || lvtblnm || '; end;' using out lvr;
11 dbms_output.put_line(lvr);
12 av:='OK';
13 END;
14 /过程已创建。SQL> declare
2 lvok varchar2(10);
3 begin
4 mypr2(lvok);
5 dbms_output.put_line(lvok);
6 end;
7 /
99
OKPL/SQL 过程已成功完成。