PL/SQL 仅使用游标将数据从 2 table 检索到新的 table

PL/SQL ONLY using a cursor to retrieve data from 2 tables into a new table

你好我需要创建一个新的table来存储两个table的数据。然后我需要创建一个存储过程来将数据从两个 table 传输到新的。我将数据从第一个 table 传输到新的 table 没有问题,当我将数据从第二个 table 传输到新的 table 时出现问题。因为不是插入与其 pubid 匹配的行,而是插入到新行。

我会说你很接近。

在第二个循环中,您不应该 INSERT,而是 UPDATE 现有行。

您声明的光标:

CURSOR cur_proceedings IS
SELECT pubid, year FROM proceedings;

您在这里使用过它:

OPEN cur_proceedings;
LOOP
    FETCH cur_proceedings INTO v_proceedings;
    EXIT WHEN cur_proceedings%NOTFOUND;

    -- Instead of INSERT:
    -- INSERT INTO publication_master(proceeding_year)
    -- VALUES(v_proceedings.year);

    -- use UPDATE:
    update publication_master m set
      m.proceeding_year = v_proceedings.year
      where m.pubid = v_proceedings.pubid;
    
END LOOP;

CLOSE cur_proceedings;