gpt4 book ai didi

sql - 插入的数据未使用直接查询显示在 Oracle 数据库中

转载 作者:行者123 更新时间:2023-12-04 18:34:42 26 4
gpt4 key购买 nike

我无法在网上找到这个问题的解决方案,所以我希望我能在这里找到帮助。

我继承了一个 Java Web 应用程序,该应用程序对 Oracle 数据库执行更改并从中显示数据。该应用程序使用“pamsdb”用户 ID。应用程序在其中一个表 (TTECHNOLOGY) 中插入了一个新行。当应用程序稍后查询数据库时,结果集包括新行(我可以在打印输出和应用程序屏幕中看到它)。
但是,当我直接使用 sqldeveloper(使用 相同用户 ID 'pamsdb')查询数据库时,我在修改后的表中看不到新行。

一些注意事项:

1) 我读了 here而在其他位置,所有 INSERT 操作都应该跟在 COMMIT 之后,否则其他用户无法看到更改。 Java 应用程序做 不是 做 COMMIT,我认为这可能是问题的根源,但由于我在 sqldeveloper 中使用相同的用户 ID,我很惊讶我看不到那里的更改。

2)我尝试从 sqldeveloper 执行 COMMIT WORK,但它并没有改变我的情况。

任何人都可以建议导致差异的原因以及如何解决?

提前致谢!

最佳答案

您使用的是同一个用户,但在不同的 session 中。一旦 session 无法看到在另一个 session 中所做的未提交更改,对于任何用户 - 它们是独立的。

您必须从执行插入的 session 中提交 - 即您的 Java 代码必须提交其更改才能在其他任何地方可见。您不能从其他地方提交 Java session 的更改,并且从 SQL Developer 提交 - 即使是同一用户 - 也只会提交在该 session 中所做的任何更改。

您可以阅读更多 about connections and sessions , 和 transactions ,以及 commit文档总结如下:

Use the COMMIT statement to end your current transaction and make permanent all changes performed in the transaction. A transaction is a sequence of SQL statements that Oracle Database treats as a single unit. This statement also erases all savepoints in the transaction and releases transaction locks.

Until you commit a transaction:

  • You can see any changes you have made during the transaction by querying the modified tables, but other users cannot see the changes. After you commit the transaction, the changes are visible to other users' statements that execute after the commit.
  • You can roll back (undo) any changes made during the transaction with the ROLLBACK statement (see ROLLBACK).


“其他用户无法看到更改”实际上意味着其他用户 session 。

如果正在提交更改并且可以通过 Java 代码从新 session 中看到更改(在 Web 应用程序和/或其连接池重新启动之后),但在 SQL Developer 中仍然不可见;或者直接在 SQL Developer 中进行的更改(并在那里提交)对 Java session 不可见 - 那么这些更改要么在不同的数据库中进行,要么在同一数据库的不同模式中进行,或者(不太可能)被 VPD 隐藏.从两个 session 使用的连接设置中可以看出这一点。

从评论来看,这似乎是这里的问题,Java Web 应用程序和 SQL Developer 访问具有相同表的不同模式。

关于sql - 插入的数据未使用直接查询显示在 Oracle 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36068520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com