1.表名不能直接作为参数,可用字符串代替。然后用动态SQL实现。
   EXECUTE IMMEDIATE V_SQL;
2.insert into a select b.c1,b.c2,a.c3 from a,b where a.c1=b.c1 ;

解决方案 »

  1.   

    要实现该功能,需要用动态sql技术,建议去看看书,经典的一本,《Oracle PL/SQL编程》
      

  2.   

    先把sql语句字符串写到一个varchar2的变量varchar2_sql里,
    然后EXECUTE IMMEDIATE varchar2_sql
      

  3.   

    create procedure pro(p_table in varchar2)
    as
    str varchar2(50);
    begin
    str:='insert into '||p_table||' values(''1'',''2'')';
    execute immediate str;
    end;
    /insert into a select a.c1、a.c2,a.c3 from a,b where a.c1=b.c1 and b.c1='01';