Oracle

时间:2015-09-16 11:47:03

标签: oracle temp-tables

有没有办法在Oracle中创建一个临时表,一旦模式连接关闭,它就会被自己删除?本地临时表是否也有类似的方式?

2 个答案:

答案 0 :(得分:1)

我认为您的问题的解决方案是使用GTT(Global Temporary Tables)。

它们允许您在其中存储临时数据,每个会话都可以使用。

CREATE GLOBAL TEMPORARY TABLE my_temp_table (
  id           NUMBER,
  description  VARCHAR2(20)
)

此外,可以通过在创建脚本末尾指定ON COMMIT DELETE ROWS;选项来删除此数据,例如:

CREATE GLOBAL TEMPORARY TABLE my_temp_table (
  id           NUMBER,
  description  VARCHAR2(20)
)
ON COMMIT DELETE ROWS;

如网站所述:

ON COMMIT DELETE ROWS子句表示应在事务结束时或会话结束时删除数据。”

您还可以查看Oracle docs here

答案 1 :(得分:0)

您可以在oracle中创建临时表,而不是每个会话。但是,您插入其中的行仅对您的会话可见,并在您结束会话或结束事务时自动删除。