1

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

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

4

1 回答 1

0

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

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

检查您的代码并检查 JDBC 设置,以便它不会在每个语句之后自动提交。

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

于 2013-11-18T09:50:36.297 回答