【发布时间】:2012-01-12 13:48:22
【问题描述】:
我正在尝试在循环中执行动态选择,但没有得到任何结果。我想让它像普通选择一样工作。
create or replace type proc_args as varray(20) of varchar2(50);
/
create or replace procedure proc_show_tab(args proc_args)
is
id_kursora integer;
wart integer;
polecenie varchar2(30);
begin
for i in 1..args.count loop
polecenie := 'SELECT * FROM '||args(i);
execute immediate polecenie;
end loop;
end;
/
show error;
declare
args2 proc_args;
begin
args2 := proc_args();
args2.extend(2);
args2(1) := 'osrodek';
args2(2) := 'trasa';
proc_show_tab(args2);
end;
/
【问题讨论】:
-
你怎么知道它没有得到任何结果。您当前的代码执行选择,然后没有其他操作。
-
因为在输出中我只得到:
TYPE proc_args compiled PROCEDURE proc_poka_tabele compiled No Errors. anonymous block completed -
它不会自己输出结果。例如,您必须将它们插入表格或
dmbs_output.put_line等。
标签: sql oracle select dynamic plsql