ORA-00932: 일관성 없는 데이터 유형:- 가 필요하지만 clob임 0 2 14,232

by 지연 ORA-00932 [2015.10.26 20:54:41]


union all 했는데요.

aaa 컬럼은 데이타타입이 varchar2

union all

bbb 컬럼은 데이타타입이  clob

입니다..

밑에 처럼...

to_clob(aaa)

union all

bbb

이런식으로 헀는데요..?

ORA-00932: 일관성 없는 데이터 유형:- 가 필요하지만 clob임

이런에러가 납니다..이것저것 해 봤는데 안되네요..

by 지금이순간 [2015.10.27 09:35:18]

제가 알기론 union all 을 사용하려면,

a테이블의 컬럼갯수와 b테이블의 컬럼갯수가 같아야 하고,

각각 컬럼의 데이터 형식이 같아야 합니다...

즉 aaa컬럼이 varchar2 라면, bbb컬럼도 varchar2여야 한다는 거죠

bbb컬럼을 cast로 bbb컬럼을 varchar2형식으로 바꿔보세요


by atumlee [2015.10.27 12:06:29]
--* CLOB 타입에 대한 GROUP BY => "ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CLOB임"
WITH
    W_TAB1(AAA) AS (SELECT 'TEXT' FROM DUAL)
  , W_TAB2(BBB) AS (SELECT TO_CLOB(RPAD('CLOB',4000,'CLOB'))||TO_CLOB(RPAD('CLOB',4000,'CLOB')) FROM DUAL)
SELECT  A.VAL
FROM    (
        SELECT TO_CLOB(AAA) AS VAL FROM W_TAB1
        UNION ALL SELECT BBB FROM W_TAB2
        ) A
GROUP BY A.VAL;

--* CLOB 타입에 대한 등가 조건 => "ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CLOB임"
WITH
    W_TAB1(AAA) AS (SELECT 'TEXT' FROM DUAL)
  , W_TAB2(BBB) AS (SELECT TO_CLOB(RPAD('CLOB',4000,'CLOB'))||TO_CLOB(RPAD('CLOB',4000,'CLOB')) FROM DUAL)
SELECT  A.VAL
FROM    (
        SELECT TO_CLOB(AAA) AS VAL FROM W_TAB1
        UNION ALL SELECT BBB FROM W_TAB2
        ) A
WHERE   A.VAL   = 'TEXT';

 

오류 내용으로 봐서는 UNION ALL 이후의 CLOB 칼럼 사용에 대한 문제인 듯 싶습니다.
첫번째 CLOB 에 대한 Group By는 불가한 걸로 알고 있습니다.
두번째 CLOB 에 대한 등가 조건은 LIKE 조건으로 대체 가능할 것 같습니다.
위의 원인들도 아니라면 다른 분들께서 대답해 주실거라 생각합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입