有人可以告诉我:全球临时表中的数据有多长时间?
答案 0 :(得分:27)
它们可以基于SESSION(数据在提交时幸存,但不能断开连接/重新连接)。它们也可以基于TRANSACTION(数据在提交后消失)。
这将创建一个基于事务的临时表:
create global temporary table temp_table_transaction on commit delete rows ...
这将创建一个基于会话的临时表:
create global temporary table temp_table_transaction on commit preserve rows ...
答案 1 :(得分:14)
创建temporary table时,您有two options数据持久性:
ON COMMIT DELETE ROWS
(默认)和ON COMMIT PRESERVE ROWS
如果未指定持久性子句或指定ON COMMIT DELETE ROWS
,则表中的数据将特定于事务(在提交或回滚时将被删除)。
如果您指定ON COMMIT PRESERVE ROWS
,数据将一直保留到会话结束。
答案 2 :(得分:5)
如果使用“on commit preserve rows”创建表,则数据将保留到当前会话结束。如果它是使用“on commit delete rows”创建的,那么它将一直保留到下一次提交或回滚。