0

別の 2 つのテーブルからの結合に基づいて、1 つのマスター テーブルを更新する必要があります。この更新を使用して何百万ものレコードを更新する必要があるため、ここで最善のアプローチを教えてください。

4

2 に答える 2

0

たぶん、この例は役に立つでしょう:

CREATE TABLE A(
   ID INT,
   STR VARCHAR2(10));
CREATE TABLE B(
   ID INT,
   STR VARCHAR2(10));

INSERT INTO A VALUES(1,'A1');
INSERT INTO A VALUES(2,'A2');
INSERT INTO A VALUES(3,'A3');
INSERT INTO B VALUES(1,'B');
INSERT INTO B VALUES(3,'C');
INSERT INTO B VALUES(4,'D');

/*HERE THE QUERY!!*/
MERGE INTO A
USING ( select ID, STR
          from B ) B
ON ( A.ID = B.ID )
WHEN MATCHED THEN 
UPDATE SET  A.STR = B.STR;

ここで他のクエリですが、NULL値で問題が発生する可能性があります(ここで試してください):

UPDATE A
SET STR = (
  SELECT STR
  FROM B
  WHERE A.ID = B.ID);

ここでこれを試すことができます

于 2013-07-17T17:40:08.900 に答える