У меня есть таблица, которая выглядит следующим образом:
CREATE TABLE "USER"
( "NUMBER" VARCHAR2(8) NOT NULL ENABLE,
"ROLE" VARCHAR2(100) NOT NULL ENABLE,
"QUESTION_ORDER" "T_NUMARRAY",
"FORENAME" VARCHAR2(20),
"SURNAME" VARCHAR2(20),
CONSTRAINT "USER_PK" PRIMARY KEY ("NUMBER")
USING INDEX ENABLE
)
VARRAY "QUESTION_ORDER" STORE AS SECUREFILE LOB
/
Я пытаюсь обновить столбец Order с помощью массива, заполненного числами. Мой код, который генерирует массив:
DECLARE
TYPE T_NUMARRAY IS TABLE OF number INDEX BY BINARY_INTEGER;
numArray T_NUMARRAY;
BEGIN
SELECT PAGE_ID BULK COLLECT INTO numArray FROM APEX_APPLICATION_PAGES WHERE APPLICATION_ID = 943 AND PAGE_NAME LIKE '%Questions_%' ORDER BY PAGE_ID ASC;
FOR i IN 1 .. numArray.Count Loop
UPDATE USER SET Question_Order = numArray WHERE QNUMMER = :APP_USER;
END LOOP;
END
Когда я пытаюсь обновить записи в таблице, я получаю сообщение об ошибке: ORA-06550: строка 9, столбец 48: PLS-00382: выражение неверно типа я не знаю, как правильно вставить массив. Может быть, кто-то может мне помочь? :)