我得到了那个给我预期结果的SQL:
select regexp_substr(longarg, '30G([^|]*)', 1, 1, '', 1) founded from dod;
如果我试图区分我的结果
select distinct regexp_substr(longarg, '30G([^|]*)', 1, 1, '', 1) founded from dod;
我收到消息:
ORA-00932: 00932. 00000 - "inconsistent datatypes: expected - got CLOB"
另一个问题是。如何使用order by
订购结果集?
如你所见,我不是真正的oracle sql专家...
感谢您的帮助
的Stefan
答案 0 :(得分:2)
看起来您的列是CLOB,但遗憾的是您遇到了一些限制(无法在DISTINCT或ORDER BY中使用它们等等。完整列表请参阅:http://docs.oracle.com/cd/E11882_01/appdev.112/e18294/adlob_working.htm#ADLOB2010)
但是,如果您从regexp_substr返回的内容少于4000个字符,则可以使用to_char(),然后允许您以不同的顺序使用它:
select distinct to_char(regexp_substr(longarg, '30G([^|]*)', 1, 1, '', 1)) founded
from dod
order by founded;