1 begin
2 execute immediate 'drop table T purge';
3 execute immediate 'create table T as select * from b where id<=100';
4 insert into T(id) values(101);
5 commit;
6 end;a,假如 没有建表T,且 把第2句“execute immediate 'drop table T purge';” 删除,
则代码执行到第4句时就报错:“表T不存在”,
可在第3句时明明是建好表了啊
为什么?
b,为什么在执行上述代码之前
一定要建好表T?
2 execute immediate 'drop table T purge';
3 execute immediate 'create table T as select * from b where id<=100';
4 insert into T(id) values(101);
5 commit;
6 end;a,假如 没有建表T,且 把第2句“execute immediate 'drop table T purge';” 删除,
则代码执行到第4句时就报错:“表T不存在”,
可在第3句时明明是建好表了啊
为什么?
b,为什么在执行上述代码之前
一定要建好表T?
execute immediate 'drop table T purge';
execute immediate 'create table T as select * from b where id <=100';
execute immediate 'insert into T(id) values(101)';
commit;
end;
--execute immediate 'drop table T purge';
execute immediate 'create table T as select * from b where id <=100';
execute immediate 'insert into T(id) values(:1)' using '101';
commit;
end;
你不把T表建好,怎么插入数据呀!!insert 到什么地方?
可以把insert语句也用动态,上面说的很清楚了
2 execute immediate 'drop table T purge';
3 execute immediate 'create table T as select * from b where id <=100';
4 execute immediate 'insert into T(id) values(101)';
5 commit;
6 end;
2 drop table T purge;
3 create table T as select * from b where id <=100;
4 insert into T(id) values(101);
5 commit;
6 end;