从JDBC -JAVA.SQL.SQLSYNTAXERROREXCEPTION启动SQL命令时出错



我有一个SQL查询,我在SQL Plus上发射,并得到结果。当我从Java代码开火-JDBC时,我得到了一个异常 -

java.sql.sqlsyntaxerrorexception:ora-00933:sql命令不正确 结束。

查询是

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;"

可能是由于您在查询中发送的分号(;(。请仔细研究它,它可能会有所帮助。

semicolon

半隆字符是语句终结者。它是ANSI SQL-92标准的一部分,但从未在Transact-SQL中使用。确实,可以编码T-SQL多年而不会遇到半隆。

用法

在两种情况下,您必须使用分号。第一种情况是您使用通用表表达式(CTE(,而CTE并不是批处理中的第一个语句。第二个是您发出服务经纪语句的地方,而服务代理语句不是批处理中的第一个语句。

最新更新