2013-03-28 37 views
-1

我有不同procedure.When我编译一个包的重复执行的PL SQL代码,它警告编译,但没有errors.Here是代码:错误执行字符串动态

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 compiled Warning: execution completed with warning

当该检查,它显示为如果问题是在下面的部分:

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

任何帮助,将不胜感激。

+0

你缺少的变量,第二次硬编码字符串之间的连接符。 – APC

回答

2

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

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

,除非v_col_name是过程太...你应该让像前行:

v_execute_string := 'package.'||v_col_name||'(par1 ,par2)';