假设我在存储过程中使用以下Oracle代码:
CREATE GLOBAL TEMPORARY TABLE temp_table (
field1 NUMBER,
field2 NUMBER
)
ON COMMIT DELETE ROWS
可以在任何单个时刻由不同用户同时调用该特定存储过程。据我了解,临时表中用户可见的数据对他或她来说是私有的,这些行在COMMIT上被删除。
但是,以下如何处理这个问题:
调用存储过程调用每次上面的CREATE语句是否安全?这会导致错误导致已经存在“可能”由不同用户(/会话)创建的临时表吗?或者这样可以,因为服务器无论如何都会私下对待它们?
ON COMMIT DELETE ROWS究竟发生了什么?我假设这只删除了特定用户会话的特定行,其他会话的数据没有受到伤害,是吗?
任何帮助将不胜感激。 :)