与内部连接合并

Merge with inner join

我正在尝试合并内部联接,以便我可以使用 3 个不同的 table, 其中 TBL1 是将插入记录的目标 table, TBL2 其中要插入的所有记录 table 1 TBL1 live 第三个也是最后一个 table TBL3,其中条件将由 rfc 制定, 其中 if tbl3.rfc = tbl2.rfc 将数据加载到 TBL1。我正在做的查询如下:

   MERGE INTO   TBL1 concent
        USING  (SELECT  inter.rfc,
                        arch.name_contr, arch.rfc,arch.taxpayer_situation, 
                        arch.oficio_global,arch.presumed_publication,arch.definitive_publication
        FROM TBL2 arch
        INNER JOIN  TBL3 inter 
              ON inter.rfc = arch.rfc )
        ON (concent.rfc = arch.rfc) WHEN MATCHED THEN UPDATE SET concent.name_contr = arch.name_contr, concent.taxpayer_situation = arch.taxpayer_situation, concent..oficio_global = arch.oficio_global, concent.presumed_publication = arch.presumed_publication, concent.definitive_publication = arch.definitive_publication, concent.id_arch = arch.id_arch WHEN NOT MATCHED THEN INSERT (concent.id_concent,concent.id_arch,conce.snapshot_date,concent.rfc,concent.name_contr,
            concent.taxpayer_situation,concent.oficio_global,concent.presumed_publication,
            concent.definitive_publication,concent.baja_logica,concent.last_update) VALUES (arch.id_arch, arch.id_arch,'04/05/2021',arch.rfc,arch.name_contr,
            arch.taxpayer_situation,arch.oficio_global,arch.presumed_publication,
            archi.definitive_publication,'01','05/05/2021');

它标记的错误是:命令行错误:8 列:27 错误报告 - 错误 SQL: ORA-00904: "ARCH"."RFC": 无效标识符 00904。00000 -“%s:无效标识符”*原因: *动作:

数据库

table 别名 archinter 的范围仅限于该子查询。如果要在父 merge 级别指定该子查询的列,则需要在 using 子句中为该子查询指定别名,例如 v_using:

MERGE INTO   TBL1 concent
        USING  (SELECT  inter.rfc as inter_rfc
                        arch.name_contr, arch.rfc,arch.taxpayer_situation, 
                        arch.oficio_global,arch.presumed_publication,arch.definitive_publication
        FROM TBL2 arch
        INNER JOIN  TBL3 inter 
              ON inter.rfc = arch.rfc ) v_using
        ON (concent.rfc = v_using.rfc) WHEN MATCHED THEN UPDATE SET concent.name_contr = v_using.name_contr, concent.taxpayer_situation = v_using.taxpayer_situation,...