0
안녕하세요,이 디코딩 문에 대해 불평하고있는이 오류를 건너 뛸 수있는 다른 방법이 있습니다. 그래서 내가 원하는 subquery 내 access_ind TA500 CO = 12 표시하려면; TA5006-HDT = 14, TA5004-HDT = 13.어떻게 SQL 디코드를 작동시킬 수 있습니까?
DECODE (b.cfg_type, 'TA5000-CO', '12', 'TA5006-HDT', '14', 'TA5004-HDT', '13') access_ind.
ORA-01790 : 표현식이 해당 표현식과 동일한 데이터 유형을 가져야합니다. 여기에 내 SQL 쿼리가 있습니다.
SELECT a.eid, a.node_sid, a.sw_version,
DECODE (a.cfg_type,
'7330FTTN', 'Alcatel 7330',
'7340FTTU', 'Alcatel 7340',
'7342GPON', 'Alcatel 7342'
) cfg_type,
a.ems_name,
DECODE (a.ems_ip_addr, 'Unknown', NULL, a.ems_ip_addr) ems_ip_addr,
a.admin_state,
nvl(r.access_ind, 0) access_ind
FROM actl73x0 a, RPT_FTTX_ELEMENT_ID r
WHERE r.eid (+) = a.eid
UNION
SELECT b.eid, b.node_sid, b.sw_version,
DECODE (b.cfg_type, 'BLM1500', 'Ericsson 1500', 'Ericsson 1500') cfg_type,
b.ems_name,
DECODE (b.ems_ip_addr, 'Unknown', NULL, b.ems_ip_addr) ems_ip_addr,
b.admin_state, 6 access_ind
FROM blm b
UNION
SELECT b.eid, b.node_sid, b.sw_version,
DECODE (b.cfg_type, 'TA5000-CO', 'TA5006-HDT', 'TA5004-HDT') cfg_type,
b.ems_name,
DECODE (b.ems_ip_addr, 'Unknown', NULL, b.ems_ip_addr) ems_ip_addr,
b.admin_state,
DECODE (b.cfg_type, 'TA5000-CO', '12', 'TA5006-HDT', '14', 'TA5004-HDT', '13') access_ind
FROM ecil_ta500x b
UNION
SELECT e.eid, e.node_sid, e.sw_version,
DECODE (e.cfg_type, 'EDA1200', 'EDA 1200', 'EDA 1200') cfg_type,
e.ems_name,
DECODE (e.ems_ip_addr, 'Unknown', NULL, e.ems_ip_addr) ems_ip_addr,
NULL admin_state,
nvl(r.access_ind, 0) access_ind
FROM eda e, RPT_FTTX_ELEMENT_ID r
WHERE r.eid (+) = e.eid
ORDER BY 1 ;
나는 당신을 잘 이해할 수 있을지 확신하지 못합니다. 내가 말한 것은 다른 가치들에 의존하지 않고이 가치들의 유형에 달려있다. – wumpz
감사합니다. 해당 데이터 유형이 무엇인지 확인하지 않았습니다. – Gio