Oracle11g Oracle11全局临时表寿命
我使用以下DDL创建了一个全局临时表:Oracle11g Oracle11全局临时表寿命,oracle11g,Oracle11g,我使用以下DDL创建了一个全局临时表: CREATE GLOBAL TEMPORARY TABLE MY_TEMP_TABLE ( column1 NUMBER, column2 NUMBER ) ON COMMIT PRESERVE ROWS 然后我把一些数据放进去,就能很好地读出来 我关闭SQL客户端会话并重新打开它,表仍然存在,但没有数据 我观察到全局临时表在会话之间保持不变,就像常规的永久表一样,但它们中的数据只在填充它的会话期间存在,这是正确的吗 谢谢正确 全局临时
CREATE GLOBAL TEMPORARY TABLE MY_TEMP_TABLE
(
column1 NUMBER,
column2 NUMBER
) ON COMMIT PRESERVE ROWS
然后我把一些数据放进去,就能很好地读出来
我关闭SQL客户端会话并重新打开它,表仍然存在,但没有数据
我观察到全局临时表在会话之间保持不变,就像常规的永久表一样,但它们中的数据只在填充它的会话期间存在,这是正确的吗
谢谢正确
全局临时表永远存在,就像任何其他数据库对象一样。它是在安装应用程序(而不是在运行时)时创建的,就像任何其他数据库对象一样
如果在提交保留行上指定
,则数据将在会话的生存期内保持(并且仅对插入它的会话可见)。如果在提交-删除行上指定,则数据仅在事务的生存期内保持(并且仅对插入它的事务可见)。我不理解的部分是“它是在安装应用程序时创建的(不是在运行时)”@foampile-全局临时表由在应用程序中创建所有永久表的相同安装脚本创建。与在运行时创建本地临时表的其他数据库不同,您不希望在运行时创建全局临时表(就像不在运行时创建新表一样)。