oracle 临时表CREATE GLOBAL TEMPORARY TABLE

刚刚工作时遇到过一个问题,用临时表导初始化数据,存储过程执行成功,但是正式表中一直没有数据。

发现是因为建临时表时create global temporary table TABLE_A (COL_1 NUMBER)或create global temporary table TABLE_A as select * from TABLE_B没有指定用哪种类型,默认为ON COMMIT DELETE  ROWS,说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)

改成ON COMMIT PRESERVE  ROWS就可以了,ON COMMIT PRESERVE  ROWS说明临时表是会话指定,会话中断时ORACLE将截断表。

posted @ 2017-04-25 10:30  VVera  阅读(1142)  评论(0编辑  收藏  举报