Я бегу ниже PL/SQL ...PL/SQL Ошибка компиляции - PLS-00382: выражение неправильного типа
DECLARE
BEGIN
FOR i IN (select VALUE from REWARDS)
LOOP
insert into BT_CMS.T_REWARDS_TYPES
(ID, REWARD_LABEL, REWARD_VALUE, REWARD_METHOD, UPDATE_USER, UPDATE_DATE, PAYMENT_PROVIDER_ID, CREATE_DATE, COUNTRY_CODE_ID)
values
(BT_CMS.SEQ_REWARD_TYPE_ID.nextval, 'R' || i || ' Real Time', i, 'Airtime', 'DEVOPS-826', sysdate, 120, sysdate, 206);
END LOOP;
END;
... и получить ошибку ниже ...
ORA-06550: line 8, column 72:
PLS-00382: expression is of wrong type
ORA-06550: line 8, column 52:
PLS-00382: expression is of wrong type
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
Я уверен, что проблема заключается в замене меня на значения, но я не знаю, в чем проблема. Столбец VALUE в таблице REWARDS, выбранный i, имеет data_type = VARCHAR2 (20 BYTE). Столбец REWARD_LABEL, в который я пытаюсь вставить его, имеет data_type = VARCHAR2 (50 CHAR).
Ах, второй вариант намного проще. Отличный ответ. Спасибо, @Aleksej !! –
@Aleksej - Какой инструмент/url вы используете для форматирования кода? Выглядит очень чисто. – Utsav
@Utsav - это жаба для Oracle v12.1, после некоторой конфигурации – Aleksej