gpt4 book ai didi

java - 从 JDBC 触发 SQL 命令时出错 - java.sql.SQLSyntaxErrorException

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:09 25 4
gpt4 key购买 nike

我有一个 sql 查询,我在 sql plus 上触发它并得到结果。当我从 java 代码 - jdbc 触发相同的查询时,我得到一个异常 -

java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended.

查询是

select prod_id, prod_area, prod_name, step_name,
to_char(entry_time, 'DD/MM/YYYY HH24:MI:SS') as entry_time,
round(extract(day from current_timestamp - entry_time)*1440 +
extract(hour from current_timestamp - entry_time)*60 +
extract(minute from current_timestamp - entry_time)) as pending_minutes
from prodreport
where exit_time is null;

java代码

String query = "select prod_id,prod_area,prod_name,step_name,to_char(entry_time, 'DD/MM/YYYY HH24:MI:SS') as entry_time, round(extract(day from current_timestamp - entry_time)*1440 + extract(hour from current_timestamp - entry_time)*60 + extract(minute from current_timestamp - entry_time)) as pending_minutes from prodreport where exit_time is null;"

最佳答案

可能是因为您与查询一起发送的分号(;)。请仔细阅读它的用法,它可能会有所帮助。

分号

分号字符是语句终止符。它是 ANSI SQL-92 标准的一部分,但从未在 Transact-SQL 中使用。事实上,多年来编写 T-SQL 代码而从未遇到过分号是可能的。

使用

有两种情况必须使用分号。第一种情况是您使用公共(public)表表达式 (CTE),并且 CTE 不是批处理中的第一个语句。第二个是您发出 Service Broker 语句的位置,并且该 Service Broker 语句不是批处理中的第一个语句。

关于java - 从 JDBC 触发 SQL 命令时出错 - java.sql.SQLSyntaxErrorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56251771/

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