全局临时表中的数据持续时间?

Avi*_*Avi 13 sql oracle

有人可以告诉我:全球临时表中的数据有多长?

Gab*_*ana 28

它们可以基于SESSION(数据在提交时幸存,但不能断开/重新连接).它们也可以基于TRANSACTION(数据在提交后消失).

这将创建一个基于事务的临时表:

create global temporary table temp_table_transaction on commit delete rows ...
Run Code Online (Sandbox Code Playgroud)

这将创建基于会话的临时表:

create global temporary table temp_table_transaction on commit preserve rows ...
Run Code Online (Sandbox Code Playgroud)


Vin*_*rat 14

创建临时表时,您有两个数据持久性选项:

  • ON COMMIT DELETE ROWS (默认)和
  • ON COMMIT PRESERVE ROWS

如果未指定持久性子句或指定ON COMMIT DELETE ROWS,则表中的数据将是特定于事务的(它将在提交或回滚时删除).

如果您指定ON COMMIT PRESERVE ROWS,数据将保留到会话结束.

  • @ Stavr00好`DECLARE GLOBAL TEMPORARY TABLE`不是一个有效的命令所以我不确定我理解你在这里想说的是什么. (2认同)

小智 5

如果使用"on commit preserve rows"创建表,则数据将保留到当前会话结束.如果它是使用"on commit delete rows"创建的,那么它将一直保留到下一次提交或回滚.