当前位置: 代码迷 >> Oracle开发 >> 拼装语句执行存储过程,该如何解决
  详细解决方案

拼装语句执行存储过程,该如何解决

热度:65   发布时间:2016-04-24 06:47:58.0
拼装语句执行存储过程
create or replace procedure p_rerun_test(v_exp_time date) is
v_sql varchar2(100);
begin
  for v_proc in (select proc_name from rpt_error_log where trunc(insert_time) =trunc(v_exp_time) and success like '%ORA-02068%') loop
   v_sql:= v_proc.proc_name||'('||v_exp_time||')';
   execute immediate v_sql;
  end loop;
end;


有一个job每天自动执行,通过dblink访问另一个数据库,执行过程中有时候会断网,因此想对于因断网而执行失败的存过重新执行,就像着用动态拼装sql实现,但是执行的时候会报错??请各位大虾指教
------解决方案--------------------
v_sql:= v_proc.proc_name
------解决方案--------------------
'('
------解决方案--------------------
v_exp_time
------解决方案--------------------
')';

改为:
v_sql:= 'begin '
------解决方案--------------------
v_proc.proc_name
------解决方案--------------------
'('
------解决方案--------------------
v_exp_time
------解决方案--------------------
');  end;';
  相关解决方案