Учитывая блок PL / SQL, где у меня есть доступ к 2 переменным типа записи, я хочу вставить эти 2 записи в одну таблицу в одном операторе, но мои попытки использовать INSERT ALL
пока не увенчались успехом.Можно ли вообще использовать INSERT ALL
с переменными записи?
Вот код, который работает с использованием специальных вставок:
DECLARE
mProperty1 MyTable%ROWTYPE;
mProperty2 MyTable%ROWTYPE;
...
BEGIN
...
INSERT INTO MyTable VALUES mProperty1;
INSERT INTO MyTable VALUES mProperty2;
...
END;
Если я пытаюсь преобразовать инструкцию в INSERT ALL
, однако, происходит сбой с сообщением об ошибке:
DECLARE
mProperty1 MyTable%ROWTYPE;
mProperty2 MyTable%ROWTYPE;
...
BEGIN
...
INSERT ALL
INTO MyTable VALUES mProperty1
INTO MyTable VALUES mProperty2
SELECT 1 FROM DUAL;
...
END;
ORA-06550: строка 14, столбец 60: PLS-00382: выражение имеет неправильный тип ORA-06550: строка 13, столбец60: PLS-00382: выражение имеет неправильный тип ORA-06550: строка 13, столбец 60: PL / SQL: ORA-00904:: неверный идентификатор ORA-06550: строка 12, столбец 7: PL / SQL: оператор SQL игнорируется
Я что-то упускаю из виду?Есть ли способ заставить это утверждение работать?