(各路高手请进,搞了两天没有搞出来)一个拼装SQL语句的问题
我有个数组lv_procedure,里面存放的存储过程名。我想动态的调用那些存储过程。过程总共有四个参数,两上输入:lv_fromdate,:lv_enddate是日期型的;两个输出变量,lv_return   字符型的,lcur_flow是游标型的.我做如下拼,不行。编译通过,但是运行会报错。 
 ORA-01008:并非所有变量都已关联 
 ORA-06512:在   line3         
 lv_execsql   := 'begin   pkg_report_public. '||lv_procedure(ln_len)|| '(:lv_fromdate,:lv_enddate,:lv_return,:lcur_flow);   end   ; '; 
 execute   immediate   lv_execsql;   
 然后我改成这样写也不行: 
 lv_execsql   := 'begin   pkg_report_public. '||lv_procedure(ln_len)|| ';end; ' 
 execute   immediate   lv_execsql   using   lv_fromdate,lv_enddate,lv_return,lcur_flow;   
 报错:pls-00306:调用过程时参数数量或类型错误。lcur_flow   不是SQL类型   
 请问高手们,我该如何拼这条语句,并动态执行他。
------解决方案--------------------lv_execsql := 'begin pkg_report_public. '||lv_procedure(ln_len)|| '(:lv_fromdate,:lv_enddate,:lv_return,:lcur_flow); end ; '; 
 execute immediate lv_execsql  using lv_fromdate,lv_enddate,lv_return,lcur_flow;
------解决方案--------------------lv_execsql := 'begin pkg_report_public. '||lv_procedure(ln_len)|| '(:1,:2,:3,:4); end ; '; 
 execute immediate lv_execsql  using lv_fromdate,lv_enddate,out lv_return,out lcur_flow;