У меня проблемы с оператором выбора, и я не уверен, что делаю неправильно.Это структура исходной таблицы:
Исходная схема DATA1
Исходная таблица FOLDERS
Исходные столбцы FOLDERID, USERID
Схема назначения DATA1
Таблица назначения FOLDER_USER
Назначение столбцов FOLDER_ID, USER_ID
И вот запрос (мне нужно изменить идентификатор папки, когда она извлекается изпервый запрос, следовательно, случай):
DECLARE
BEGIN
FOR FOLDER_ROW IN (SELECT FOLDERID = CASE
WHEN FOLDERID = '10' THEN '1'
WHEN FOLDERID = '565' THEN '2'
WHEN FOLDERID = '11' THEN '3'
WHEN FOLDERID = '81' THEN '4'
ELSE '0'
END, USERID FROM DATA1.FOLDERS WHERE UPPER(OWNER) = 'ADMIN')
LOOP
INSERT INTO DATA1.FOLDER_USER (FOLDER_ID, CORP_ID) VALUES (FOLDER_ROW.FOLDERID, FOLDER_ROW.CORPID);
END LOOP;
COMMIT;
END;
При выполнении я получаю следующую ошибку, и я застрял в том, почему я ее получаю.Я знаю, что это как-то связано с кейсом внутри select:
ORA-06550: line 3, column 39:
PL/SQL: ORA-00923: FROM keyword not found where expected
ORA-06550: line 3, column 22:
PL/SQL: SQL Statement ignored