急急急!!! 在线等待
有这样一个问题,我有一个oracle数据表,字段类型如下:
id number(18)
bt varchar2(50)
nr varchar2(200)
其中id建有自己的序,为自增字段,
问题是这样的,我在查询输出的时候,如果记录数大于10就出错,小于等于10输出正常,环境:jsp
源代码
string mysql="select id,bt,nr,to_char(fbrq,yyyy-mm-dd) as fbrq from tzggb order by id desc";
resultset rs=stmt.executequery(mysql);
while(rs.next())
out.println("<tr><td><a href=tzggdetail.jsp?id="+rs.getstring("id")+">"+rs.getstring("bt")+"</a></td></tr>");
错误提示
org.apache.jasper.jasperexception: 操作不允许: unsupported syntax for refreshrow()
连结及statment如下
connection conn= drivermanager.getconnection(url,user,password);
statement stmt=conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable);
请各位指点!
推荐阅读
select id,bt,nr,to_char(fbrq,yyyy-mm-dd) as fbrq from tzggb
你先不要order by 看还会不会出错
多次使用out.println会有问题,改用stringbuffer。
stringbuffer buf = new stringbuffer("");
while(rs.next()) {
buf.append("<tr><td><a href=tzggdetail.jsp?id="+rs.getstring("id")+">"+rs.getstring("bt")+"</a></td></tr>");
}
} // end while;
out.println(buf.tostring());
select * from (select id,bt,nr,to_char(fbrq,yyyy-mm-dd) as fbrq from tzggb order by id desc)
那你看这样还有错吗?
import java.lang.stringbuffer;
先把要输出的字符串放到stringbuffer中, 然后只调一次out.println()就可以把数据一次打印。
对啊,liad() 为什么?
难道是因为直接order by的时候因为id 已经有了物理排序而必须现有结果集然后在内存中进行排序?
但是为什么小于10条的时候可以啊?
http://www.orafaq.net/cgi-bin/msgboard/view-thr.cgi?board=java&message=1108
可能是oracle jdbc的bug,我没有仔细探究


讨论区