안녕하세요. 오라클 11g에서 아래 쿼리를 실행하면 오류가 발생합니다.
INSERT 문장의 서브쿼리부분이 문제인듯 한데..
MERGE문의 서브쿼리에서는 USING절의 인라인뷰를 참조할 수 없는건지요?
이런 경우에는 USING절에서 조인을 하는것이 나을까요?
ERROR at line 82:
ORA-00904: "X"."JURIS_TPO_CD": invalid identifier
MERGE INTO Z_CONF_DEVICE D USING ( SELECT EQUIP_MGMT_NUM , TID , EQUIP_TYP_CD , EQUIP_TYP_NM , IP_ADDR , TPO_CD , TPO_NM , JURIS_TPO_CD , JURIS_TPO_NM , EMS_IP_ADDR , INST_ADDR , ESTB_DD , WRK_DT , EQUIP_GRP , SVC_TYP_NM , ONU_MAC_NO , USG_GUBUN , SUP_EQUIP_MGMT_NUM , LDONG_CD , CT_PVC_NM , CT_GUN_GU_NM , UP_MYUN_DONG_NM , LOCATION2 , KEY_POSITION , EQUIP_GRP_NUM , MANG_TYP_CD FROM Z_SWING_ADSL_DEVICE_S1 ) X ON (D.DEVICENUM=X.EQUIP_MGMT_NUM) WHEN NOT MATCHED THEN INSERT ( devicenum , tid , devtype , deviceip , tpo_cd , tpo_nm , k_tpo_cd , k_tpo_nm , emsip , wrk_dt , gendatetime , devgroup , service_name , dev_mac , dev_mass_kind , up_devicenum , ldong_cd , lsido_nm , lgugun_nm , ldong_nm , location , teamcode , funcgroup , ingroup , del_flag , decisiontime , updatetime , mang_type_cd ) VALUES ( X.EQUIP_MGMT_NUM , X.TID , X.EQUIP_TYP_CD , X.IP_ADDR , X.TPO_CD , X.TPO_NM , X.JURIS_TPO_CD , X.JURIS_TPO_NM , X.EMS_IP_ADDR , X.ESTB_DD , X.WRK_DT , X.EQUIP_GRP , X.SVC_TYP_NM , X.ONU_MAC_NO , X.USG_GUBUN , X.SUP_EQUIP_MGMT_NUM , X.LDONG_CD , X.CT_PVC_NM , X.CT_GUN_GU_NM , X.UP_MYUN_DONG_NM , NVL(X.INST_ADDR,'')||NVL2(X.Location2,'',' ['||X.Location2||']') , (select teamcode from center_code_tbl where k_tpo_cd = X.JURIS_TPO_CD) , 0 -- funcgroup , 0 -- ingroup , '0' , TO_CHAR(sysdate,'YYYYMMDD') , TO_CHAR(sysdate,'YYYYMMDD') , X.MANG_TYP_CD ) WHEN MATCHED THEN UPDATE SET tid = X.TID , devtype = X.EQUIP_TYP_CD , deviceip = X.IP_ADDR , tpo_cd = X.TPO_CD , tpo_nm = X.TPO_NM , k_tpo_cd = X.JURIS_TPO_CD , k_tpo_nm = X.JURIS_TPO_NM , emsip = X.EMS_IP_ADDR , wrk_dt = X.ESTB_DD , gendatetime = X.WRK_DT , devgroup = X.EQUIP_GRP , service_name = X.SVC_TYP_NM , dev_mac = X.ONU_MAC_NO , dev_mass_kind = X.USG_GUBUN , up_devicenum = X.SUP_EQUIP_MGMT_NUM , ldong_cd = X.LDONG_CD , lsido_nm = X.LDONG_CD , lgugun_nm = X.CT_PVC_NM , ldong_nm = X.UP_MYUN_DONG_NM , location = NVL(X.INST_ADDR,'')||NVL2(X.Location2,'',' ['||X.Location2||']') , teamcode = (select teamcode from center_code_tbl where k_tpo_cd = X.JURIS_TPO_CD) , funcgroup = 0 , ingroup = 0 , decisiontime = TO_CHAR(sysdate,'YYYYMMDD') , updatetime = TO_CHAR(sysdate,'YYYYMMDD') , mang_type_cd = X.MANG_TYP_CD ;