2012-10-11 36 views
0

看起來Oracle沒有在子查詢中看到別名。返回的錯誤是:ORA-00904:「C」,「FLH_PUNTO_EROGAZIONE」:identificativo非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(+); 
+1

您是否收到錯誤?意外的結果?請澄清你的問題和確切的問題。 – MatBailie

+0

該製劑的工作原理: (SELECT DECODE(COUNT(1),0, '否', 'SI') FROM(SELECT campo34 AS campo34 FROM out.ANAG_PDF_PWR_T840 UNION SELECT campo34 FROM out.ANAG_PDF_T812 )東西 WHERE campo34 = c.flh_punto_erogazione ) 「Flusso creaz。Pdf presente OUT」, – Revious

回答

0

我沒有看到任何與c.flh_punto_erogazione和或查詢的問題,因爲它的工作原理喜歡 -

SQL> select (select 1 
       from dual b 
       where c.dummy||'YZ'=b.dummy||'YZ') col 
     from dual c 
     where c.dummy||'YZ'='XYZ'; 

COL 
---------- 
1 

除非,列flh_punto_erogazione沒有在表中eni_flussi_hub存在,或者您可能拼錯了。

+0

我明白了!這是FROM子句。我記得它不能從外部聲明中使用別名。 – Revious