我动态拼了一个v_sql 为test(:v_out, :v_out2, 1269,'N'); 其中test是个function。请问如何用execute immediate执行这个function。请求各位前辈帮忙啊。

解决方案 »

  1.   


    execute immediate v_sql using v_out,v_out2 into v_result;
      

  2.   

    因为函数是有返回值的
    看看下面的方法可以不declare
    v_sql varchar2(1000);
    v_1 varchar2(100);
    v_2 varchar2(100);
    v_result varchar2(100);
    begin
         v_sql := 'declare
                          v_result varchar2(100); 
                   begin 
                         v_result := test(:v_out, :v_out2, 1269,'N'); 
                   end;';
         execute immediate v_sql using in v_1,v_2 ;
         
    end;