Я хотел бы выполнить запрос в цикле. Есть две таблицы, и я хотел бы взять идентификатор из одной таблицы и добавить новые строки в другую таблицу с новым значением, добавленным для каждого идентификатора.
У меня есть две таблицы, как показано ниже:
Таблица профиля:
ID NAME VALUE
1 AAA 111
2 BBB 222
3 CCC 333
4 DDD 444 ```
Таблица атрибутов:
ID ATTRIBUTE_ID VALUE
1 1 VAL1
2 1 VAL2
3 2 VAL2
4 2 VAL3
Теперь я хочу взять каждый уникальный идентификатор из таблицы профиля и вставить соответствующую строку в таблицу атрибутов с новым значением. Конечная таблица должна выглядеть следующим образом:
ID ATTRIBUTE_ID VALUE
1 1 VAL1
2 1 VAL2
3 2 VAL2
4 2 VAL3
5 1 VAL4
6 2 VAL4
Я попробовал следующий курсор и не смог:
DECLARE
-- Store the SELECT query in a cursor
CURSOR l_cur IS SELECT DISTINCT(ID) FROM PROFILE table;
--Create a variable that will hold each result from the cursor
l_cur_rec l_cur%ROWTYPE;
BEGIN
-- Open the Cursor so that we may retrieve results
OPEN l_cur;
LOOP
-- INSERT INTO another table
INSERT INTO ATTRIBUTE table (ID, ATTRIBUTE_ID, PLATFORM_ID)
VALUES((select max(ID)+1 from ATTRIBUTE_PLATFORM), (l_cur) , VAL4);
-- EXIT the loop if there are no more results
EXIT WHEN l_cur%NOTFOUND;
END LOOP;
-- Close the cursor to release the memory
CLOSE l_cur;
END;