EDITEDPL/SQL Oracle - Выбор из внутренней таблицы
У меня есть проблемы с выполнением какой-PL-код/SQL. есть реальный стол a
. Я хочу взять только элементы с range<=100
. Я создаю коллекцию внутри своего PL/SQL на основе этой таблицы. Затем я хочу выполнить операцию SELECT
в этой коллекции. Но у меня проблемы с этим.
Подготовленная таблица (это все, например, это не проблема. Мне просто интересно узнать, как я могу выбрать из коллекции в блоке кода PL/SQL).
CREATE TABLE a (amount NUMBER);
INSERT INTO a VALUES (50);
INSERT INTO a VALUES (100);
INSERT INTO a VALUES (200);
А потом я получил этот блок:
DECLARE
TYPE aTable IS TABLE OF a%ROWTYPE;
aActual aTable;
temp NUMBER;
BEGIN
SELECT * BULK COLLECT INTO aActual
FROM a WHERE amount<=100;
SELECT SUM(amount) INTO temp FROM TABLE(aActual);
DBMS_OUTPUT.PUT_LINE(temp);
END;
Но я получил eroor PLS-00642
и ORA-22905
. Что мне делать? Почему это не работает? Я на Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
версии (по SELECT * FROM V$VERSION;
)
Если вам не нужна таблица aActual для чего-либо еще, не используйте ее. Просто выберите сумму диапазона из таблицы Kocury. –
@ DanBracuk Я знаю, но мне нужна эта таблица. Здесь я представил только небольшое количество кода, чтобы объяснить, какую проблему я получу. – michalsol