【发布时间】:2018-05-14 19:47:47
【问题描述】:
我使用整数数组将值传递给 Oracle 存储过程
Oracle 中的数据类型 => 数字
存储过程:
create or replace PROCEDURE SP_ACCESS
(
UserID IN CHECKINOUT.USERID%TYPE
)
IS
BEGIN
INSERT INTO CHECKINOUT ("USERID")
VALUES (UserID);
COMMIT;
END;
ASP.NET 代码:
int[] arrUID = UID.ToArray();
OracleConnection connection = new OracleConnection();
connection.ConnectionString = Obj.GetOraConnectionString();
OracleCommand command = new OracleCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "SP_ACCESS";
command.Parameters.Add("@USERID", OracleDbType.Int32);
command.Parameters[0].Value = arrUID;
connection.Open();
command.ExecuteNonQuery();
执行时出现以下错误:
无法将“System.Int32[]”类型的对象转换为类型 'System.IConvertible'。
【问题讨论】:
-
command.Parameters[0].Value期待System.Int32类型,您分配的是System.Int32[](int 数组) -
您不能将数组作为参数值传递。