문제는 regexp_substr
함수에서하지만 열 데이터 형식에서 오지 않습니다
당신이 기능이 올바르게 작동하는 것을 볼 여기
SQL> CREATE TABLE t (data_column CLOB);
Table created
SQL> INSERT INTO t VALUES ('123123,12,123123');
1 row inserted
SQL> INSERT INTO t VALUES ('123124,12,123123');
1 row inserted
SQL> INSERT INTO t VALUES ('123125,11,123123');
1 row inserted
SQL> SELECT regexp_substr(data_column,'[^,]+',1,2) FROM t;
REGEXP_SUBSTR(DATA_COLUMN,'[^,
--------------------------------------------------------------------------------
12
12
11
그러나 오라클은 (10.2 테스트) 당신이 허용하지 않습니다 의 Clob 컬럼 그룹 :
SQL> SELECT dbms_lob.substr(regexp_substr(data_column,'[^,]+',1,2), 4000),
2 COUNT(*)
3 FROM t
4 GROUP BY dbms_lob.substr(regexp_substr(data_column,'[^,]+',1,2), 4000);
DBMS_LOB.SUBSTR(REGEXP_SUBSTR( COUNT(*)
------------------------------- ----------
12 2
11 1
:
SQL> select count(*) from t group by data_column;
select count(*) from t group by data_column
ORA-00932: inconsistent datatypes: expected - got CLOB
는 다음과 같은 방법으로 그룹을 수행하기 위해 VARCHAR2로 기능 출력을 변환 할 수 있습니다