Java中的SQL查询问题- Oracle数据库

bmp9r5qi  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(139)

我在 Java 中执行 SQL 查询时遇到问题,该查询在 MySQL 中运行良好,但在 Oracle 中不运行。以下是我的查询:

String verifyLogin = "SELECT COUNT(*) FROM LoginDB WHERE username = '1234' AND password = '1234'";

字符串
问题是,这个查询总是返回0,即使在Oracle数据库中有一条记录包含username = 1234password = 1234
我查了几件事:
两个数据库(MySQLOracle)的查询代码相同,我确保用户名和密码与查询中的完全相同,并且我有适当的权限在 Oracle 中查询LoginDB表。
是否有某些特定于 Oracle 数据库的东西导致了这种行为?我是否需要调整查询语法或其他东西来使其工作?
谢谢你的帮助

wgx48brx

wgx48brx1#

确保您COMMIT您的数据。
在Oracle中,如果不执行COMMIT,则只有创建数据的会话可以看到未提交的数据,而其他会话(即使是属于同一用户的会话)永远不会看到未提交的数据。
例如,行为可以解释为:
1.如果您在SQLPlus中创建数据,但没有COMMIT数据或关闭会话。
1.然后,如果你从Java查询数据,那么它将连接到数据库并创建一个新的会话(即使你作为同一个用户连接),然后你永远不会看到未提交的数据。
1.但是如果您返回到SQL
Plus中的打开会话,那么您将看到数据以其未提交的形式存在于该会话中。
1.要在其他会话中查看它,COMMIT数据。

相关问题