if (rs.next()) out.println(rs.getInt("count(*)"));
同意(FrenziedDragon)!或者修改如下: sql = "SELECT count(*) as countNum FROM xxx WHERE department LIKE '%"+departmentName[i]+"%'"; System.out.println(sql); // 如果还有问题,在SQL*Plus中执行该SQL语句,看输出结果如何 rs = stmt.executeQuery(sql); if (rs.next()) out.println(rs.getInt("countNum"));
sql = "SELECT count(xxx.*) FROM xxx WHERE department LIKE '%"+departmentName[i]+"%'"; rs = stmt.executeQuery(sql); if (rs.next()) { out.println(rs.getInt(1)); }else{ out.println("not value found."); }
sql = "SELECT count(xxx.*) FROM xxx WHERE department LIKE '%"+departmentName[i]+"%'"; rs = stmt.executeQuery(sql); if (rs.next()) { out.println(rs.getInt(1)); }else{ out.println("not value found."); }
上面的方法全试过了,均无效!俺在标题已经说过(也许没说明白):在SQLPLUS里面可以正常执行,返回是正确结果:2可用程序就出问题了,用Tarloy兄的方法不会打印not value found,只会输出0用路人甲前辈的方法也无效,返回仍旧是0急需帮助,这种问题头一次碰到!大家有碰到过吗???
sql = "SELECT count(*) as countNum FROM xxx WHERE department LIKE '%"+departmentName[i]+"%'";
System.out.println(sql); // 如果还有问题,在SQL*Plus中执行该SQL语句,看输出结果如何
rs = stmt.executeQuery(sql);
if (rs.next()) out.println(rs.getInt("countNum"));
rs = stmt.executeQuery(sql);
if (rs.next()) {
out.println(rs.getInt(1));
}else{
out.println("not value found.");
}
rs = stmt.executeQuery(sql);
if (rs.next()) {
out.println(rs.getInt(1));
}else{
out.println("not value found.");
}
1、大小写问题
2、'%????%' 中可能包含空格
3、还没有想出来
你把生成的sql println出来,然后拷贝到sqlplus里研究一下,应该没有问题。
Get new JDBC driver from OTN. Oracle driver has many many bugs...
SQL语句在SQLPLUS里执行完全正常,%???%内没有空格。JDBC已换成ORACLE网站上的最新驱动,发现此驱动与ORACLE光盘上的驱动完全一样(文件比较),运行后问题依旧。hexiaofeng兄的方法没太看明白,怎么那么多+号啊?
sql="select * from xxx where department like %XXX%";
i=0;
rs = executeQuery(sql);
while(rs.next()){
i++;
}
out.print(i);
如果仍是0,则是你数据库有问题了!
你用sql="select * from xxx where department like ?";
然后...Prepare...那种方式。