求助,    记得以前写的存储过程里有这样执行的sql语句:    v_sql := 'insert into table values()';    exec v_sql ;    但是最近写存储过程的时候怎么也不能这么写了,请问怎么回事??

解决方案 »

  1.   

    执行动态SQL是execute immediatev_sql := 'insert into table values()';
     execute immediate v_sql ;在sql*plus中执行存储过程是execute(可简写为exec)或者call,如果执行存储过程p_test
    SQL>exec p_test;
    或者
    SQL>call p_test();不要搞混淆了!
      

  2.   

    v_sql := 'insert into table values()';
     execute immediate v_sql ;
      

  3.   

    v_sql := 'insert into table values()';execute immediate v_sql ;
      

  4.   

    v_sql := 'insert into table values()';
     execute immediate v_sql ;