从Java代码调用SQL查询
我在SQL developer中成功执行了此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
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");