1.描述
oracle AB两表 A主表 B 子表 一对多关系 根据ID 关联 批量更新 将A表中值 存入 B表中
2.方法
2.1 MERGE 命令
MERGE
INTO
B b ---需要更改的表
USING A a ---关联查询的表
ON
(b.ID = a.ID ) ---两表的关联条件
WHEN MATCHED THEN
UPDATE
SET
b.column1 = a.column1, ---需要更改的表的字段
b.column2 = a.column2, ---需要更改的表的字段
b.column3 = a.column3, ---需要更改的表的字段
b.column4 = a.column4; ---需要更改的表的字段
WHEN NOT MATCHED THEN ---如果不存在 如果不用则直接删除后边
INSERT ---则插入
(column1,
column2,
column3)
VALUES ('1',
'2',
'3');
2.2 存储过程
CREATE OR REPLACE PROCEDURE QYYLJG_TWRS_TEST.TEST_ZX_FILE AS
CURSOR J IS
SELECT a.ID,b.column1,B.column2
FROM B b, A a
WHERE a.ID = ID ;
ID VARCHAR2(50);
column1 VARCHAR2(50);
column2 VARCHAR2(50);
BEGIN
OPEN J;
LOOP
FETCH J
INTO ID, column1, column2;
EXIT WHEN J%NOTFOUND;
UPDATE B b
SET b.column1 = column1,
b.column2 = column2
WHERE b.ID = ID;
END LOOP;
CLOSE J;
END;