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时程序在时间上就成了 “先插入再造表”