Plsql 具有n个嵌套表类型参数的PL/SQL过程

Plsql 具有n个嵌套表类型参数的PL/SQL过程,plsql,oracle11g,Plsql,Oracle11g,我目前正在完成一项任务,创建一个程序,允许用户输入代码中所示的信息,如customerID、产品代码等。该过程应该能够接受这些参数“n”次,这解释了为什么我创建了该类型的表。我不知道我做错了什么,但我有一个编译过的过程,但有错误 求你了,我真的需要有人来救我( 假设你有合适的地址类型 我已经做了一个样品 将服务器输出设置为ON CREATE OR REPLACE TYPE address_typ IS OBJECT ( val1 VARCHAR2(20),

我目前正在完成一项任务,创建一个程序,允许用户输入代码中所示的信息,如
customerID
、产品代码等。该过程应该能够接受这些参数“n”次,这解释了为什么我创建了该类型的表。我不知道我做错了什么,但我有一个编译过的过程,但有错误

求你了,我真的需要有人来救我(


假设你有合适的
地址类型
我已经做了一个样品 将服务器输出设置为ON

CREATE OR REPLACE TYPE address_typ IS OBJECT
     (
          val1 VARCHAR2(20),
          val2 VARCHAR2(20),
          val3 VARCHAR2(20)
     );
现在,

请注意: 要显示类型字段,需要使用列名

DECLARE
     placeOrder_var placeOrder_tbltyp := NEW placeOrder_tbltyp();
BEGIN
     placeOrder_var.EXTEND;
     placeorder_var(1) := placeOrder_typ(1, 2,3, address_typ('3 Cross Road', 'Sunderland', 'SU2 6ZA'));
     p_placeOrder (p_placeOrder_tbl => placeOrder_var);
END;
/
输出:

anonymous block completed
1 Customer No 
2 Product No 
3 Quantity 
3 Cross Road Delivery Address 

非常感谢,我已经让它工作了,但是如何显示customerID、itemNo、itemQuan以及完整的deliveryAddress的值呢?您可以使用相同的方法,即p_placeOrder_tbl(i).deliveryAddress.val2、p_placeOrder_tbl(i).deliveryAddress.val3等。。
DECLARE
     placeOrder_var placeOrder_tbltyp := NEW placeOrder_tbltyp();
BEGIN
     placeOrder_var.EXTEND;
     placeorder_var(1) := placeOrder_typ(1, 2,3, address_typ('3 Cross Road', 'Sunderland', 'SU2 6ZA'));
     p_placeOrder (p_placeOrder_tbl => placeOrder_var);
END;
/
anonymous block completed
1 Customer No 
2 Product No 
3 Quantity 
3 Cross Road Delivery Address