[Oracle Database] 유니코드 구분하기

SELECT
    WORD,
    ASCIISTR(WORD) AS "TO ASCII",
    LENGTH(ASCIISTR(WORD)) AS "LENGTH OF ASCII",
    CASE
        WHEN LENGTH(ASCIISTR(WORD)) > LENGTH(WORD) THEN 'IS UNICODE'
        ELSE 'IS ASCII'
    END AS "RESULT"
FROM (
    SELECT 'ABCD' WORD FROM DUAL
    UNION
    SELECT '홀롤롤로' WORD FROM DUAL
);

ASCIISTR 함수는 Non-ASCII 문자를 \xxxx 형식의 UTF-16 코드로 반환한다. 이를 이용해서 유니코드인지 아스키인지 구분하는 쿼리.