Здесь я попытался создать коллекцию вложенных таблиц в пакете
create or replace PACKAGE udt_types_pkg
AS
type customers_rec is table of customers%rowtype;
END udt_types_pkg;
Я пытаюсь создать процедуру, объявляющую коллекцию cust_rec со ссылкой на тип коллекции из пакета
create or replace PROCEDURE test_proc(
output_msg OUT VARCHAR2)
--rcrds_affected OUT VARCHAR2)
IS
cust_rec udt_types_pkg.customers_rec;
BEGIN
SELECT * BULK COLLECT INTO cust_rec
FROM CUSTOMERS;
merge into customers_new tar
using (
select * from table(cust_rec)
) src
on (src.customerid = tar.customerid)
when matched then
update set
tar.type = src.type
when not matched then
insert
values (src.customerid, src.name, src.address, src.telephone, src.type);
output_msg := 'Procedure_successfully_executed';
END;
Когда я запускаю процедуру, я получаю эту ошибку:
ORA-21700: объект не существует или помечен для удаления
ORA-06512: в "SYSTEM.TEST_PROC", строка 13
ORA-06512: в строке 5
Пожалуйста, помогите мне исправить это. Спасибо!
Мне также может понадобиться включить процедуру в другой пакет.