DECLARE
BEGIN
execute immediate 'create table TJ_JKTJBACK
(
tjbh VARCHAR2(200) not null,
grbh VARCHAR2(200),
tjlb VARCHAR2(10),
tjlbmc VARCHAR2(500)
)';
execute immediate 'INSERT INTO TJ_JKTJBACK SELECT * FROM TJ_JKTJ';
commit;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
execute immediate可以绕过db对语句的检查。不加时表还未创建,DB分析insert语句时报错。
普通的SQL语句在编译的时候就会执行
所以不加execute immediate时程序在时间上就成了 “先插入再造表”