首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

rownum和updateRow()之间的有关问题

2012-03-21 
rownum和updateRow()之间的问题我在oracle9i数据库中想提取100条,然后循环把每条记录的state字段变成1,代

rownum和updateRow()之间的问题
我在oracle9i数据库中想提取100条,然后循环把每条记录的state字段变成1,代码如下:

Statement       smt       =       con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);        
String       selCode       =       "   select   rownum,CONTENT,STATE   from   HR.YD_MSGDB   where   STATE=0   and   rownum <100     ";//SQL语句      
ResultSet       rs       =       smt.executeQuery(selCode);
    while   (rs.next())
    {      
    rs.updateString( "state ", "1 ");
    rs.updateRow();    
    }
竟然出错,说java.sql.SQLException:   ORA-01446:   无法从含   DISTINCT,   GROUP   BY   等子句的视图中选择ROWID。

如果我把rownum <100去掉,程序就一下问题就没有了,这是怎么回事啊?请高手指教,因为数据量太大,我必须要加rownum!我也没用到DISTINCT,   GROUP   BY   ,更没用到视图!

奇怪,请指教,先谢谢了!

[解决办法]
select rownum,CONTENT,STATE from HR.YD_MSGDB where STATE=0 and rownum <100
这样是肯定不对的.因为rownum是根据记录数增加的,不能做为条件.

热点排行