begin
    execute immediate 'create table user1.tb_tmp (a integer)';
    insert into user1.tb_tmp values (1);
end;在上面的insert执行的时候报表不存在。谢谢

解决方案 »

  1.   

    --因为你的表是动态创建的在编译的时候如果没有表
    --直接insert会报错的,也要用动态sql插入数据
    begin
      execute immediate 'create table user1.tb_tmp (a integer)';
      execute immediate 'insert into user1.tb_tmp values (1)';
    end;
    --当然首先你要有给user1用户创建表的权限
    scott@YPCOST> ed
    已写入 file afiedt.buf  1  begin
      2    execute immediate 'create table tb_tmp (a integer)';
      3    execute immediate 'insert into tb_tmp values (1)';
      4* end;
    scott@YPCOST> /PL/SQL 过程已成功完成。scott@YPCOST> select * from tb_tmp;         A
    ----------
             1
      

  2.   

    多谢 zhuomingwang & java3344520