日期:2014-05-16  浏览次数:20496 次

rowid和rownum

1.要根据rowid查询数据,若果是该rowid,执行具体操作。

?? 首先,查询出该rowid

?? 其次,要使用该rowid,rowid在oracle中是伪列,如何转换成java需要的数据结构,进行逻辑判断。

?? 用了几种方法转换数据oracle.sql.Rowid不行,最后妥协了直接将其转换为char就可以了。、

?

 select * from (select e.priority, rowidtochar(e.rowid) as rowsid
          from ec_type e
         where status = 1
           and e.priority >= to_date('2010-02-11', 'yyyy-MM-dd')
         order by e.priority ) s
 where rownum <= 2

?? 直接使用了函数rowidtochar(rowid)

?

?? 第三,限制选择出数据的条数,使用了rownum <= 2,只选择出前两条数据。

?

2.rownum则是sql的输出结果排序,rowid会根据查询结果的不同而改变,不能唯一标示一条数据。也就是说

??对rowid而言,若一条id为3的记录,其rowid不变,但是当我查询条件不同的时候,id为3的记录的rownum可能不同。

?

3.oralce rowid函数

rowid类型转换成char类型:   
select   rowidtochar(rowid)   from   dual   

将char类型转换成rowid类型:   
select   chartorowid('AAAADDAAEAAAAGrAAA')   from   dual  
?