Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Procedimento de armazenamento de chamadas dinâmicas (executar imediatamente) Parâmetros de saída Problemas


aqui é procedimento simples
 create procedure test_proc(p_user varchar2, p_code varchar2, p_error varchar2) is
 begin
   p_error := p_user || p_code;
 end; 

código de chamada para o mesmo ..
Declare
  v_test_proc varchar2(50) := 'test_proc';
  p_user      varchar2(50) := 'test_name';
  p_code      varchar2(50) := 'test_code';
  p_error     varchar2(100);
  v_sql       varchar2(2000);
begin
  v_sql := 'begin ' || v_test_proc || '( :1 ,:2, :3 ); end;';
  execute immediate v_sql
    using p_user, p_code, out p_error;
  dbms_output.put_line(p_error);
end;