CLOB 컬럼 MAX(CASE) 문 조회 오류 - 일관성 없는 데이터 유형 : -0(가) 필요하지만 CLOB 임. 0 3 667

by 흔들린우동 [SQL Query] [2021.12.17 10:58:14]


안녕하세요.

CLOB 컬럼을 조회하는데 오류가 발생하는데 원인을 못찾겠습니다.

오류메시지는 : ORA-00932 : 일관성 없는 데이터 유형 : -0(가) 필요하지만 CLOB임

 

* LOG컬럼(CASE문 안에 사용된 A_NM 을 제외하고 모두 LOB 컬럼)

A_SLC_CND_DOC 

A_CND_SCT

 

--SQL문

SELECT MAX(CASE WHEN S.A_NM='계약유형" AND DBMS_LOB.GETLENGTH(S.A_SLC_CND_DOC) > 0 THEN S.A_CND_SCT

                         ELSE IS NULL

                 END) AS A_TMP

FROM A.TICAA007 S

WHERE TNS_NO IS NOT NULL

AND REG_YR = '2020';

by 우주민 [2021.12.17 13:44:19]
SELECT MAX(CASE WHEN S.A_NM='계약유형" AND DBMS_LOB.GETLENGTH(S.A_SLC_CND_DOC) > 0 
                THEN S.A_CND_SCT
                ELSE IS NULL <-- ELSE NULL
                 END) AS A_TMP
FROM A.TICAA007 S
WHERE TNS_NO IS NOT NULL
AND REG_YR = '2020';

 

IS NULL 은 NULL을 찾는 문구니까...

NULL 을 입력 한다면 저 구문을 수정해야 할듯 싶습니다.


by 모래가흙흙 [2021.12.17 13:52:40]

lob 형태의 값은  group by나 order by에 들어갈 수 없는것으로 아는데,

varchar2 형태로 형변환한 값을 추가하여 추가한 값을 기준으로  1건을 가져오는것이 어떨까요??


by 마농 [2021.12.20 09:16:47]

1. 쿼리도 이상하고?
- '계약유형" 부분 따옴표 이상하고
- ELSE 부분에 IS NULL 이상하고
2. 쿼리의 목적이 뭔가요?
- 왜? MAX 를 써야 하는지? 어떤 의도인지?
- 왜? CASE 를 써야 하는지? Where 절에서 조건 줘도 될 것 같은데?

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