在一个C写的OCI程序中,使用了如下SQL语句
select * from (select rownum rowseq, t.* from demo t) where rowseq> 15
总是报ORA-00904:Invalid identifier "rowseq "。
DEMO表结构中存在CLOB和BLOB字段,经判断是LOB字段引起的错误,请问如何解决?
还实验过一个语句
select * from demo minus select * from demo where rownum <16
报ORA-00932:inconsistent datatype,expect- ,get clob
我知道是由于此表有LOB字段,不支持MINUS操作,查询了一下文档,里面提到“UNION, MINUS, and SELECT DISTINCT are allowed on LOB attributes if the object type has a MAP or ORDER function.”。对这一句很不理解,请大家指点!
------解决方法--------------------------------------------------------
改成
select rowseq,t.* from (select rownum rowseq, t.* from demo t) where rowseq> 15
试试