oracle - множественная вставка в коллекцию таблиц типов

Я создал следующий объект в Oracle 11g.

CREATE OR REPLACE TYPE myObject as object(
fieldOne number,
fieldTwo number
);

И создал новый тип таблицы myObject;

CREATE OR REPLACE TYPE myTable IS TABLE OF myObject;

Теперь я хотел бы создать новый экземпляр myTable и добавить несколько жестко закодированных строк в myTable в командной строке SQL Plus, затем передайте объект myProcedure в качестве параметра.

Я пробовал следующее;

declare newTable myTable;
begin
select myObject(50,5) bulk collect into newTable from dual;
select myObject(40,7) bulk collect into newTable from dual;
myProcedure(newTable);
commit;
end;

Какой вид работ, хотя второй select into Заявление перезаписывает первое.

Мой вопрос Как я могу добавить несколько строк в newTable?

Спасибо заранее:)

1 ответ

Решение
declare
    newTable myTable;
begin
    newTable := myTable();
    newTable.extend(2); -- The desired size of the collection

    -- Oracle collections begin at index 1, not 0
    newTable(1) := myObject(50, 5);
    newTable(2) := myObject(40, 7);

    myProcedure(newTable);
end;
Другие вопросы по тегам