语句
SELECT * FROM a
WHERE ROWID = 'AAKYPgAJOAABP0EAAB'
有返回语句
SELECT * from a
WHERE ROWID = 'AAKYPgAJOAABP0EAAB'
AND ROWID >= 'AAKYPgAJBAABKvFAAA'
也有返回但是
SELECT * FROM a
WHERE ROWID = 'AAKYPgAJOAABP0EAAB'
AND ROWID >= 'AAKYPgAJBAABKvFAAA' 
AND ROWID <= 'AAKYPgAJOAABP0EQAA'
没有返回求高人指点

解决方案 »

  1.   

    先执行一下这个
    SELECT dbms_rowid.rowid_row_number('AAKYPgAJOAABP0EAAB') from dual;
    SELECT dbms_rowid.rowid_row_number('AAKYPgAJOAABP0EQAA') from dual;rowid不是根据字符来比较的,rowid每一位是使用64进制来表式的.
    具体再看一下这个http://blog.csdn.net/tianlesoftware/article/details/5020718
    你就会明白
      

  2.   

    rowid 是6 3开
    你最后加的那个AAKYPg  AJB  AABKvF  AAA
    AAKYPg:段编号
    AJB:相对文件编号
    AABKvF:数据块号
    AAA:行号
    你最后AND ROWID <= 'AAKYPgAJOAABP0EQAA'的相对文件编号和之前不一致?a是分区表吗?可能导致AND条件为false
      

  3.   

    原因找到了,估计是oracle的rowid比较不是按照字符串来比较大小的