看起来 Oracle 在子查询中没有看到 c 别名。返回的错误是:ORA-00904: "C"."FLH_PUNTO_EROGAZIONE": identificativo non valido
似乎 oracle 只是在 1 度外部语句中查找别名
SELECT (SELECT 1
FROM (SELECT 1 AS SomeAlias
FROM out.ANAG_PDF_PWR_T840
WHERE campo34 = c.flh_punto_erogazione
UNION
SELECT 1
FROM out.ANAG_PDF_T812
WHERE campo34 = c.flh_punto_erogazione) Something)
FROM etl_elab_interf_flat f, eni_flussi_hub c, eni_info_extra_forn ief, conf_forniture forn
WHERE f.eif_campo198(+) = c.flh_id_messaggio
AND f.idde_identif_dati_ext_id(+) = c.idde_identif_dati_ext_id
AND c.flh_punto_erogazione IN ('8003576015', '8003576054', '8003576551', '8003576565')
AND eif_campo200 IN ('FORNITURA_ENI')
AND c.flh_flag_ann = 'N'
--
AND forn.forn_old_codice_fornitura (+) = c.flh_fornitura
AND forn.forn_fornitura_id = ief.forn_fornitura_id(+);