插入全局临时表操作失败

时间:2013-07-22 13:06:51

标签: sql oracle plsql

用于将临时表数据存储到 plsql表类型的select语句:

select * from Global_temporary_table
bulk collect into plsql_table_type;

进行一些转换后,当我尝试使用下面的insert语句将数据插回Global_temporary_table表时

INSERT INTO Global_temporary_table
VALUES v_rbct_tbl(i);
COMMIT;

无法完成插入事务。但是,如果我尝试将相同的数据插入非全局临时表,则不会产生任何问题。

请帮帮我!

1 个答案:

答案 0 :(得分:2)

几乎可以肯定您的提交会删除数据。 GTT中的数据是易失性的,并且在提交(ON COMMIT DELETE ROWS)之后或在会话结束之后(ON COMMIT PRESERVE ROWS)消失。

如果您需要在提交后保留数据,请使用ON COMMIT PRESERVE ROWS创建表。

请参阅docs