DB2 9.7 Fix5 오라클 호환성 옵션을 켰을시 발생될수 있는 문제
DB2 에서 Connect by 쿼리를 사용하기 위하여
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start
명령을 이용하여 호환성 모드를 활성화 시키면...
가장 쉽게 접하는 문제점이..
CASE WHEN THEN 문과 DECODE 에서 사소한 문제점이 발생된다.
단일 형태의
DECODE(컬럼,'값','값2') AS 컬럼
일때는 문제가 없으나
다수의 CASE WHEN .... WHEN THEN ... WHEN THEN ... / DECODE 일경우에는
SELECT
DECODE(cond, '1','일이다1123878798798791', '2', '기타') || NAME
FROM (
SELECT '1' AS COND, '정' AS name FROM DUAL
union
SELECT '2' AS COND, '김' AS name FROM DUAL
)
위의 결과가 호환성 옵션 활성화 하기전 DB2에서는 (9.7 이라 DECODE 가능) 일체의 공백이 없이 붙여서 CONCATE 되지만....
결과....
일이다1123878798798791정
오라클 호환 옵션을 활성화 한뒤에 실행하게 되면
일이다1123878798798791정
으로 출력이 된다.
즉 제일 길이가 긴 DECODE/CASE WHEN의 결과값 길이의 SIZE를 따라 감...
호환성 옵션을 사용한 이유는 CONNECT BY 를 사용하기 위함이므로
CONNECT BY 옵션만 활성화 하니 기존의 결과와 같이 나옴...
'Computer_IT > 오류메세지' 카테고리의 다른 글
java.lang.NoClassDefFoundError : Could not initialize class SqlSessionManager (0) | 2013.01.18 |
---|---|
Iptime N6004 8.32펌웨어 IPTV (0) | 2012.08.07 |
Synology NAS DS712+ 에서 nodejs 설치중 에러 (1) | 2012.07.07 |
WebKeeper-차단 과 VPN (0) | 2012.02.21 |
Nat Service 증상 (0) | 2012.02.04 |