-1

我有一个 pl sql 代码,其中重复执行具有不同过程的包。当我编译它时,它编译时发出警告,但没有错误。这是代码:

for v_col_name in (select col_table_name from tbl_name)
loop    
   v_execute_string := 'package.'||v_col_name (par1 ,par2);
   execute immediate 'begin '|| v_execute_string; 'end;'
end loop

错误:

PROCEDURE abc 已编译警告:执行完成但有警告

检查时,它显示问题出在以下部分:

execute immediate 'begin '|| v_execute_string; 'end;'

任何帮助,将不胜感激。

4

1 回答 1

2

你有一个分号,它在 v_execute_string 和 'end;' 之间结束一行。

应该execute immediate 'begin '|| v_execute_string || ' end;'

除非 v_col_name 也是一个过程......你可能应该在之前写下一行:

v_execute_string := 'package.'||v_col_name||'(par1 ,par2)';
于 2013-03-28T19:06:07.063 回答