初学oracle问大家个问题,如何创建一个表名为变量的存储过程  如:insert into tablename values(.....); tablename为变量
最好给个例子,谢谢

解决方案 »

  1.   

    create or replace procedure test (p_tab in varchar2)
    as
    begin
     execute immediate 'insert into '||p_tab||' values(......)';
    end;
    /
      

  2.   


    怎么执行总出错呢
    看我写的对不
    create or replace procedure TEST2(tab in varchar2,mid in varchar2,mname in varchar2,age in number)
    as
    begin
           execute immediate 'insert into '||tab||' values(mid,mname,age)';
    end TEST2;
      

  3.   

    create or replace procedure TEST2(tab in varchar2,mid in varchar2,mname in varchar2,age in number) 
    as 
    begin 
          execute immediate 'insert into '||tab||' values('||mid||','||mname||','||age||')'; 
    end TEST2;
      

  4.   

    如果mid、mname、age有可能为空的话,用下面的好点
    create or replace procedure TEST2(tab in varchar2,mid in varchar2,mname in varchar2,age in number) 
    as 
    begin 
          execute immediate 'insert into '||tab||' values('||''''||mid||''''||','||''''||mname||''''||','||''''||age||''''||')'; 
    end TEST2;