【问题标题】:pl sql. 0 rows mergedpl sql。 0 行合并
【发布时间】:2013-06-24 06:25:37
【问题描述】:

我是merge 的新手,所以这个问题可能显得太愚蠢了。

我在跑步

MERGE INTO regions r
   USING regions_temp t
   ON (r.id_region = t.id_region)
    WHEN NOT MATCHED THEN INSERT (r.id_region, r.region_name)
     VALUES (t.id_region, t.region_name);

在我运行命令之前,表有以下记录(id_region,region_name):

地区:

1   1   Kiev
2   2   Asia
3   3   Australia
4   4   South America
5   5   Africa

Regions_temp:

1   1   
2   2   Asia
3   3   Australia
4   4   South America

该命令成功运行,但在窗口底部显示 0 行合并,并且没有合并任何记录。

帮助不大?

【问题讨论】:

    标签: sql oracle merge


    【解决方案1】:
    MERGE INTO regions r
       USING regions_temp t
       ON (r.id_region = t.id_region)
        WHEN MATCHED THEN update  set r.region_name =  t.region_name
    

    是我真正需要的

    【讨论】:

      【解决方案2】:

      根据merge_insert_clause documentation

      如果 ON 子句的条件为假,merge_insert_clause 指定要插入到目标表列中的值。

      由于Regions_temp 中没有记录其id_regionRegions 中的记录不匹配,因此没有要合并的行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-17
        相关资源
        最近更新 更多