Я сделал процедуру в PL/SQL, которая вставляет данные из одной таблицы в другую на основе первичного ключа. Моя процедура работает нормально, но я не могу понять, как я буду обновлять столбец CODE_NUMBER моей таблицы MAIN, если первичный ключ уже существует.
На самом деле, я хочу, чтобы строки MAIN таблицы обновлялись, когда у него есть первичный ключ и вставляются данные из REGIONS, когда первичный ключ не существует.Вставка/обновление в PL/SQL
DECLARE
variable number;
id number;
description varchar2 (100);
CURSOR C1 IS
select regions.REGION_ID variable
from regions;
BEGIN
FOR R_C1 IN C1 LOOP
BEGIN
select regions.REGION_ID,regions.REGION_NAME
into id,description
from regions
where regions.REGION_ID = R_C1.variable;
----If exists then update otherwise insert
INSERT INTO MAIN(ID, CODE_NUMBER) VALUES(id,description);
dbms_output.put_line(id ||' '|| 'Already Exists');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line(R_C1.variable);
END;
END LOOP;
END;