我是ADO.NET和SQL的新手。我正在玩oracle和ADO.NET,并遇到了一个问题,我觉得这个问题没有记录好。
我有一个使用名为NUM_ARRAY
的自定义类型的存储过程,其定义如下。
create or replace
TYPE NUM_ARRAY
AS TABLE OF NUMBER(38, 0);
我的存储过程如下.....
PROCEDURE SAMPLE_PROCEDURE(
SAMPLE_ARRAY IN NUM_ARRAY)
AS
BEGIN
UPDATE RETURNLIST_PICKLIST_MAPPING
SET PICKLIST_ID = 5555555
WHERE RETURNLIST_ID
IN (SELECT * FROM TABLE(SAMPLE_ARRAY));
END SAMPLE_PROCEDURE;
我正在尝试使用以下.NET代码调用此存储过程
idbInterface.Open();
idbInterface.AddParameters("RETURN_LIST_ID_IN", returnListId);
idbInterface.Parameters["RETURN_LIST_ID_IN"].DbType = System.Data.DbType.Int16;
idbInterface.Parameters["RETURN_LIST_ID_IN"].Direction = ParameterDirection.Input;
idbInterface.AddParameters("Cur_Picklist_report", null);
idbInterface.Parameters["Cur_Picklist_report"].DbType = System.Data.DbType.Object;
idbInterface.Parameters["Cur_Picklist_report"].Direction = ParameterDirection.Output;
DataSet dsPickListReportData= idbInterface.ExecuteDataSet(CommandType.StoredProcedure, procedureName);
现在的问题是我收到wrong number or type of arguments
错误。
如何从ADO.NET代码发送类型为NUM_ARRAY
的数据类型?