在这里,我尝试在包中创建嵌套表集合
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行
请帮助我解决此问题。谢谢!
我可能还需要将该过程包含在其他软件包中。