从具有“on commit delete rows”命令的全局临时表中获取数据

时间:2013-11-18 05:00:05

标签: java sql oracle session global-temp-tables

我有一个名为TEST_FUNCTION 的sql函数,它在调用时将数据发布到名为GLOBAL_TEMP的全局临时表。当我调用该函数时,如果数据发布到GLOBAL_TEMP表,则返回字符串“SUCCESS”。然后,当我从GLOBAL_TEMP表中选择数据时,它不提供数据。据我所知,我必须保持用于调用函数TEST_FUNCTION的相同会话来访问GLOBAL_TEMP表中的数据,因为它是使用命令 on commit delete rows 创建的。

我的问题是如何在java代码中处理这个问题?(在java中保持相同的ORACLE会话以访问数据)

1 个答案:

答案 0 :(得分:0)

ON COMMIT DELETE ROWS就是这个意思。数据仅在同一事务中可见,并且只要数据被COMMIT,表就会被截断。

要读取您需要的数据,以确保没有介入的COMMIT,并且您使用相同的会话。

检查您的代码并检查JDBC设置,以便在每次声明后都不会自动提交。

还要记住,任何DDL语句都会强制提交。