source

select with union 및 CLOB 필드를 사용할 때 오류 ORA-00932

gigabyte 2023. 3. 25. 11:21
반응형

select with union 및 CLOB 필드를 사용할 때 오류 ORA-00932

우선, 이것은 이 질문의 중복이 아닙니다.만약 그렇다면, 미안하지만 나는 내 문제를 읽어서 해결할 수 없었다.

다음 오류가 나타납니다.

ORA-00932: inconsistent datatypes: expected - got CLOB

이 SELECT 문을 실행하려고 하면:

SELECT TXT.t_txt 
  FROM CITADM.tb_avu_txt_grc GR  
 INNER JOIN CITADM.tb_avu_txt TXT   
    ON (GR.e_txt = TXT.e_txt and GR.u_txt = TXT.u_txt)  
 WHERE  TXT.u_lin_ord = 1
UNION
SELECT TXT.t_txt 
  FROM CITADM.tb_avu_txt_grc_cvd GRC  
 INNER JOIN CITADM.tb_avu_txt TXT  
    ON (GRC.e_txt = TXT.e_txt and GRC.u_txt = TXT.u_txt)  
 WHERE  TXT.u_lin_ord = 2

선택한 필드(t_txt)는 CLOB 데이터 유형입니다.보시다시피 같은 표의 같은 열입니다.이 문장은 더 큰 문장에 속합니다.제가 이 문제를 안고 있는 부분을 분리해당 문장은 더 큰 문장에 속합니다.

정말 감사합니다.

나는 문제가 의 사용이라고 생각한다.UNION대신UNION ALL.그UNION연산자는 두 세트를 결합하여 중복을 제거합니다.CLOB 타입을 비교할 수 없기 때문에 중복 배제 부분은 할 수 없습니다.

사용.UNION ALL중복 제거를 시도하지 않기 때문에(어차피 중복은 없을 것입니다) 동작합니다.

중복이 있어서 UNION ALL을 사용할 수 없었습니다.이 솔루션은 완벽하게 작동합니다. 감사합니다!

BTW: UNION ALL과 UNION은 의미론적으로 다르기 때문에 이것이 유일한 정답입니다.중복이 전혀 없는 경우 UNION을 사용하면 불필요한 정렬 오버헤드가 발생합니다.

언급URL : https://stackoverflow.com/questions/17732302/error-ora-00932-when-using-a-select-with-union-and-clob-fields

반응형