问题描述
procedure issue( ErrorCode out number,ErrorText out varchar2,No out number,Date out date,BCode in number,BrCode in number,ACode in varchar2,TCode in number,pi_docElement_InputData IN DocElement_InputData);
最后一个输入参数是这样的:
CREATE OR REPLACE TYPE "DOCELEMENT_INPUTDATA" as Table Of Prepaid_Element_Doc
Prepaid_Element_Doc 是:
CREATE OR REPLACE TYPE "PREPAID_ELEMENT_DOC" as object(
A NUMBER(4),B NUMBER(3),C number(4)
)
我需要输入 2 'PREPAID_ELEMENT_DOC' 作为程序的输入,但我不知道该怎么做。
select issue(801,802,'A',1,???) from dual;
解决方法
只需调用两种数据库类型的构造函数,例如
DocElement_InputData(PREPAID_ELEMENT_DOC(1,2,3),PREPAID_ELEMENT_DOC(4,5,6))
上面的代码创建了一个包含两个 DocElement_InputData
的 PREPAID_ELEMENT_DOC
。
请参阅您的 Oracle 版本的 Oracle 文档。
这适用于 Oracle 19c
,您可以通过这种方式调用具有表数据类型的过程
select
issue
(
801,802,'A',1,(DOCELEMENT_INPUTDATA
(
PREPAID_ELEMENT_DOC(1,PREPAID_ELEMENT_DOC(3,4,5)
)
)
)
from
dual;