有没有办法在Oracle中创建一个临时表,一旦模式连接关闭,它就会被自己删除?本地临时表是否也有类似的方式?
答案 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中创建临时表,而不是每个会话。但是,您插入其中的行仅对您的会话可见,并在您结束会话或结束事务时自动删除。