728x90
반응형
오라클 쿼리를 갖고 놀고 있는데 다음과 같은 에러가 발생했다.
UNION ALL을 가지고 각 SELECT문을 연결하는데 데이터타입이 맞지 않아 그렇다는 것..
문제의 쿼리문
SELECT * FROM (
SELECT LENGTH(' 고급_츄르츄르 ') AS "길이" from DUAL UNION ALL
SELECT LENGTH(TRIM('열빙어 ')) AS "길이" from DUAL UNION ALL
SELECT TRIM('Kanagan ') AS "길이" from DUAL
);
보면, 위 2개의 SELECT문은 정수형을 리턴하는데, 맨 아래에 있는 SELECT문은 문자열을 리턴한다.
즉, 결과로 리턴되는 값들의 데이터타입이 일치해야 하는데, 일치 하지 않으니, 일치 시켜라 라는 에러인 것..
수정한 쿼리문
SELECT * FROM (
SELECT LENGTH(' 고급_츄르츄르 ') AS "길이" from DUAL UNION ALL
SELECT LENGTH(TRIM('열빙어 ')) AS "길이" from DUAL UNION ALL
-- LENGTH로 감싸서 정수형으로 리턴
SELECT LENGTH(TRIM('Kanagan ')) AS "길이" from DUAL
);
728x90
반응형
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] 오라클에서 천단위 콤마(,)를 찍는 방법 (0) | 2022.07.16 |
---|---|
[Oracle] 오라클 임시테이블 Dual에 대해서 알아보자. ( 오라클에서 더미데이터 활용하기 ) (0) | 2022.07.09 |
[Oracle] 오라클 SUBSTR, SUBSTRB 함수를 사용하여 문자열 자르기 (0) | 2022.07.09 |
[Oracle] 오라클 TRIM, LTRIM, RTRIM 함수를 사용하여 공백 및 반복, 특정문자 제거해보자. (0) | 2022.07.09 |
[Oracle] 오라클 SYSDATE를 통한 오늘 날짜 가져오기 / 날짜포맷 및 문자열 변환 (0) | 2022.07.04 |