gpt4 book ai didi

java - 查询在 SQL*Plus 上运行但不在 jdbc 程序中运行

转载 作者:行者123 更新时间:2023-12-01 22:58:32 27 4
gpt4 key购买 nike

我在 sqlplus (Oracle 11g) 上执行了查询

select Bookdetails.TITLE,Bookdetails.PRICE
from bookdetails
inner join orderdetails
ON BOOKDETAILS.BOOKID=ORDERDETAILS.BOOKID
Where Orderdetails.username ='Divya.grg';

我得到了这个输出:

TITLE                                                             PRICE
------------------------------------------------------------ ----------
mastering c++ 876.2
construction material reference book 2nd edition 332
let us c++ 793

但是当我在 JDBC 程序上执行相同的查询时:

PreparedStatement ps=conn.prepareStatement("select Bookdetails.TITLE,Bookdetails.PRICE"
+"from bookdetails"
+"inner join orderdetails"
+"ON BOOKDETAILS.BOOKID=ORDERDETAILS.BOOKID"
+"Where Orderdetails.username ='"+username+"'");
ResultSet rs=ps.executeQuery();

我收到此异常:

>java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

为什么会发生这种情况?如果 sqlplus 执行此操作没有任何问题,那么为什么会在程序中抛出异常?

最佳答案

在您要连接的行的开头放置空格以在 Java 中创建查询,否则您要连接的行将一起运行查询,如下所示:

select Bookdetails.TITLE,Bookdetails.PRICEfrom bookdetailsinner join orderdetails...

当你想要的时候

select Bookdetails.TITLE,Bookdetails.PRICE from bookdetails inner join orderdetails...

关于java - 查询在 SQL*Plus 上运行但不在 jdbc 程序中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700376/

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