标题:oracle merge 循环 存储 求助
只看楼主
zzz6708
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-4
 问题点数:0 回复次数:0 
oracle merge 循环 存储 求助
我写个存储,要求根据源库表更新目标库表,俩库的表名字段完全一样, 但是每次merger上张表和下张表的字段名,字段个数,都不一样,怎么写个循环,merge所有表?
我现在写成这样 ,sql拼不下去了,谁帮帮我补全

create or replace procedure P_MERGE_TABLES is
  /*    MERGE 同步*/
  C_OWNER       varchar2(30);
  C_TABLE_XH    NUMBER;
  C_TABLE_NAME  varchar2(30);
  C_COLUMN_XH   NUMBER;
  C_COLUMN_NAME VARCHAR2(30);
  
  str_sql       varchar2(1000);
  --循环  
  cursor curaa is
         SELECT A.XH as table_xh, A.OWNER, A.TABLE_NAME, B.COLUMN_ID, B.COLUMN_NAME
           FROM (SELECT ROWNUM XH, T.OWNER, T.TABLE_NAME
                   FROM ALL_TABLES T
                  WHERE T.TABLE_NAME LIKE 'HX%') A,
                ALL_TAB_COLUMNS B
          WHERE A.TABLE_NAME = B.TABLE_NAME
          ORDER BY A.XH, B.COLUMN_ID;
begin
  for cu in curaa loop
    C_OWNER       := cu.owner;
    C_TABLE_XH    := cu.table_xh;
    C_TABLE_NAME  := cu.table_name;
    C_COLUMN_XH   := cu.column_xh;
    C_COLUMN_NAME := cu.column_name;
   
   
    str_sql :=  'MERGE INTO HX_ZSJ.c_table_name MB
                   USING HX_BAK.c_table_name@DB_LINKS Y
                   ON (MB.PZZL_DM = Y.PZZL_DM)
                  WHEN MATCHED THEN
                    UPDATE
                       SET MB.C_COLUMN_NAME = Y.C_COLUMN_NAME,
                               ..................................................................
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
                  WHEN NOT MATCHED THEN
                    INSERT
                     
                    VALUES
                      (Y.C_COLUMN_NAME,
                     ....................................
。。。。。。。。。。。。。。。。。。。。。。。。。。。。);'
  
    execute immediate str_sql; --插入统计数据
    commit;
  
  end loop;
end P_MERGE_TABLES;
/
搜索更多相关主题的帖子: procedure replace create 
2013-03-06 11:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-399873-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.772864 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved