Oracle数据库,使用“Daos.queryCount(dao(), sql.toString())”查询sql的结果条数,发生“ORA-00933: SQL 命令未正确结束”错误,
查看源码如下:
/**
* 查询某sql的结果条数
*/
public static long queryCount(Dao dao, String sql) {
Sql sql2 = Sqls.fetchInt("select count(1) from ("
+ sql
+ ") as nutz_tmp"
+ System.currentTimeMillis());
dao.execute(sql2);
return sql2.getInt();
}
由于Oracle不支持as,所以建议删除as即可。
问答
Oracle数据库使用Daos.queryCount查询某sql的结果条数错误的问题
标签:
无
4 回复
oracle版本: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
驱动版本: oracle6.jar 11.2.0.4.0
修改为以下能够使用:
public static long queryCount(Dao dao, String sql) {
String tmpTable = "nutz_tmp_";
if (!dao.meta().isOracle())
tmpTable = "as " + tmpTable + R.UU32();
Sql sql2 = Sqls.fetchInt("select count(1) from ("
+ sql
+ ")" + tmpTable);
dao.execute(sql2);
return sql2.getInt();
}
在oracle和mysql下都能用,oracle不支持“as”和以“”开头的标识符
添加回复
请先登陆