본문 바로가기
DB/db2

db2 union all시 사이즈 에러시 error code SQLSTATE=22001

by 새로운 도전을 위한 한걸음 2015. 5. 10.

error code SQLSTATE=22001

error SQLSTATE=42826

WITH RPL (LEVEL, ORG_ID, COMPANYCODE, DEPTCODE, DEPTNAME, PARENTDEPTCODE , allcode ,allcodeNm) AS
(
 SELECT 1 ,parent.ORG_ID, parent.COMPANYCODE, parent.DEPTCODE, parent.DEPTNAME, parent.PARENTDEPTCODE ,
   cast(parent.DEPTCODE as varchar(1500)) as  allcode ,    -- 에러나는 필드를 임의로 늘려 준다
   cast(parent.DEPTNAME as varchar(1500))as  allcodeNm
 FROM ORGANIZATION parent
 where parent.PARENTDEPTCODE is null
 and use_yn = 'Y'
 UNION ALL
 SELECT PARENT.LEVEL + 1,child.ORG_ID, child.COMPANYCODE, child.DEPTCODE, child.DEPTNAME, child.PARENTDEPTCODE ,
    cast(parent.allcode||'>'||child.DEPTCODE as varchar(1500)) as  allcode ,
    cast(parent.allcodeNm||'>'||child.DEPTNAME as varchar(1500)) as  allcodeNm
 FROM (
  SELECT ORG_ID, COMPANYCODE, DEPTCODE, DEPTNAME, PARENTDEPTCODE
  FROM ORGANIZATION
  where PARENTDEPTCODE is not  null
  and use_yn = 'Y'
 ) AS child , RPL PARENT
 WHERE PARENT.DEPTCODE = child.PARENTDEPTCODE
)
SELECT LEVEL, 'deptcode' STATETYPE, COMPANYCODE COMPANYID, COMPANY_NAME COMPANYNM,  DEPTCODE AS CODE, DEPTNAME CODENM ,PARENTDEPTCODE ,allcode ,allcodeNm
FROM RPL A, COMPANY_INFO B
where A.COMPANYCODE =B.COMPNAYID
ORDER BY LEVEL
WITH UR