【发布时间】:2013-10-23 13:41:25
【问题描述】:
我正在尝试使用确切的过程签名调用 API,但不知何故,我认为无法正确识别数字表。
API 定义:
TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);
PROCEDURE GETSERVICES_API
(
I_DIMOBJID IN NUMBER, I_OBJECTID IN NUMBER, I_FILTER IN NUMBER,
O_ERRORCODE OUT NUMBER, O_ERRORTEXT OUT VARCHAR2, O_SERVICELIST OUT NUMLIST
);
我对 API 的调用:
DECLARE
TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);
lt_SERVICELIST NUMLIST;
ls_errortext varchar2(100);
ln_errorcode number;
BEGIN
PKGCOMSUPPORT_SERVICE.GETSERVICES_API(I_DIMOBJID => 6,
I_OBJECTID => 5263,
I_FILTER => 3,
O_ERRORCODE => ln_errorcode,
O_ERRORTEXT => ls_errortext,
O_SERVICELIST => lt_SERVICELIST);
END;
当我调用 API 时,我得到:PLS-00306: 调用 'GETSERVICE_API 时参数类型的数量错误
知道为什么吗?谢谢
【问题讨论】:
-
您是否尝试将您的 NUMLIST 类型声明放在您的 pl/sql 块之外?
-
不,我没试过,但应该是一样的。
-
我不认为你可以在 pl/sql 块中创建类型,它们是数据库对象