mak*_*bol 1 sql oracle select plsql dynamic
我正在尝试在循环中执行动态选择,但我没有得到任何结果.我想让它像正常选择一样工作.
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;
/
Run Code Online (Sandbox Code Playgroud)
PL/SQL在如何将数据返回到执行客户端方面与T-SQL不同.SQL SELECT语句在代码中执行两次,但不会将结果返回给任何东西 - 要将数据返回给客户端,您需要显式返回REF CURSOR(并且客户端需要知道您是)或使用DBMS_OUTPUT.put_line或类似的东西在"输出"中显示结果.当你完成"匿名块"时,意味着你的块完成没有错误.
如何返回结果将取决于您要完成的任务.