从Java代码调用SQL查询

从Java代码调用SQL查询,java,sql,oracle,Java,Sql,Oracle,我在SQL developer中成功执行了此SQL查询: SELECT COUNT(*) "All", COUNT(CASE WHEN TYPE = 'Critical' THEN 1 END) "Critical", COUNT(CASE WHEN TYPE = 'Info' THEN 1 END) "Info", COUNT(CASE WHEN TYPE = 'Warning' THEN 1 END) "Warning", COUNT(CASE WHE

我在SQL developer中成功执行了此SQL查询:

SELECT
    COUNT(*) "All",
    COUNT(CASE WHEN TYPE = 'Critical' THEN 1 END) "Critical",
    COUNT(CASE WHEN TYPE = 'Info' THEN 1 END) "Info",
    COUNT(CASE WHEN TYPE = 'Warning' THEN 1 END) "Warning",
    COUNT(CASE WHEN TYPE = 'Error' THEN 1 END) "Error"
FROM
    EVENT;
但是,当我试图以这种方式执行查询时,我得到了一个错误

dbRequest.setPreparedStatement("SELECT "
+ " COUNT(*) 'All',"
+ " COUNT(CASE WHEN TYPE = 'Critical' THEN 1 END) \"Critical\", "
+ " COUNT(CASE WHEN TYPE = 'Info' THEN 1 END) \"Info\", "
+ " COUNT(CASE WHEN TYPE = 'Warning' THEN 1 END) \"Warning\", "
+ " COUNT(CASE WHEN TYPE = 'Error' THEN 1 END) \"Error\" "
+ " FROM "
+ " EVENT");
错误:

SQL exception: Cannot get object 923: ORA-00923: FROM keyword not found where expected

您知道我如何解决这个问题吗?

您在请求中混淆了引号:

在第二行,您必须将
'
替换为
'

“全部”应为“全部”
dbRequest.setPreparedStatement("SELECT "
+ " COUNT(*) \"All\","
+ " COUNT(CASE WHEN TYPE = 'Critical' THEN 1 END) \"Critical\", "
+ " COUNT(CASE WHEN TYPE = 'Info' THEN 1 END) \"Info\", "
+ " COUNT(CASE WHEN TYPE = 'Warning' THEN 1 END) \"Warning\", "
+ " COUNT(CASE WHEN TYPE = 'Error' THEN 1 END) \"Error\" "
+ " FROM "
+ " EVENT");