create or replace procedure test as p3 dbms_describe.number_table; p4 dbms_describe.number_table; p5 dbms_describe.number_table; p6 dbms_describe.varchar2_table; p7 dbms_describe.number_table; p8 dbms_describe.number_table; p9 dbms_describe.number_table; p10 dbms_describe.number_table; p11 dbms_describe.number_table; p12 dbms_describe.number_table; p13 dbms_describe.number_table; p14 dbms_describe.number_table; i int; begin sys.dbms_describe.describe_procedure('procedurename','','',p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14); for i in 1..100 loop if p6(i) is not null then dbms_output.put_line(p6(i)); else return; end if; end loop; end;
select text from sys.all_source where owner = '用户名' and name = '过程名' and type = 'PROCEDURE' order by line;注意:用户名和过程名都要用大写的。
我就想象desc procedurename那样只返回参数信息
select * from user_source where name='过程名';
as p3 dbms_describe.number_table;
p4 dbms_describe.number_table;
p5 dbms_describe.number_table;
p6 dbms_describe.varchar2_table;
p7 dbms_describe.number_table;
p8 dbms_describe.number_table;
p9 dbms_describe.number_table;
p10 dbms_describe.number_table;
p11 dbms_describe.number_table;
p12 dbms_describe.number_table;
p13 dbms_describe.number_table;
p14 dbms_describe.number_table;
i int;
begin
sys.dbms_describe.describe_procedure('procedurename','','',p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14);
for i in 1..100 loop
if p6(i) is not null then
dbms_output.put_line(p6(i));
else
return;
end if;
end loop;
end;