将用户定义的数据类型的值传递给ADO.net中的plsql存储过程

时间:2016-01-21 06:18:29

标签: c# stored-procedures ado.net

我是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的数据类型?

0 个答案:

没有答案