Oracle11g Oracle11全局临时表寿命

Oracle11g Oracle11全局临时表寿命,oracle11g,Oracle11g,我使用以下DDL创建了一个全局临时表: CREATE GLOBAL TEMPORARY TABLE MY_TEMP_TABLE ( column1 NUMBER, column2 NUMBER ) ON COMMIT PRESERVE ROWS 然后我把一些数据放进去,就能很好地读出来 我关闭SQL客户端会话并重新打开它,表仍然存在,但没有数据 我观察到全局临时表在会话之间保持不变,就像常规的永久表一样,但它们中的数据只在填充它的会话期间存在,这是正确的吗 谢谢正确 全局临时

我使用以下DDL创建了一个全局临时表:

CREATE GLOBAL TEMPORARY TABLE MY_TEMP_TABLE 
(
  column1  NUMBER,
  column2  NUMBER
)  ON COMMIT PRESERVE ROWS 
然后我把一些数据放进去,就能很好地读出来

我关闭SQL客户端会话并重新打开它,表仍然存在,但没有数据

我观察到全局临时表在会话之间保持不变,就像常规的永久表一样,但它们中的数据只在填充它的会话期间存在,这是正确的吗

谢谢

正确

全局临时表永远存在,就像任何其他数据库对象一样。它是在安装应用程序(而不是在运行时)时创建的,就像任何其他数据库对象一样


如果在提交保留行上指定
,则数据将在会话的生存期内保持(并且仅对插入它的会话可见)。如果在提交-删除行上指定
,则数据仅在事务的生存期内保持(并且仅对插入它的事务可见)。

我不理解的部分是“它是在安装应用程序时创建的(不是在运行时)”@foampile-全局临时表由在应用程序中创建所有永久表的相同安装脚本创建。与在运行时创建本地临时表的其他数据库不同,您不希望在运行时创建全局临时表(就像不在运行时创建新表一样)。