我正在开发一个项目,我想使用int64作为PL / SQL过程返回的数组中元素的返回类型。使用dotConnect Express for Oracle数据提供程序版本8.5.521(从nuget下载)调用该过程。
但是,当我分配OracleParameter.ArrayLength
属性时,我会得到以下ArgumentException
:
输入" OracleDbType.Int64"不能在PL / SQL表参数中使用。
以下代码段会重现错误:
using System;
using System.Data;
namespace ConsoleApplication1
{
public class Program
{
public static void Main()
{
// Using dotConnect.Express.for.Oracle.8.5.521 (from nuget)
var op = new Devart.Data.Oracle.OracleParameter(
parameterName:"RESULT",
dbType:Devart.Data.Oracle.OracleDbType.Int64);
op.IsNullable = true; // Ok
op.Direction = ParameterDirection.ReturnValue; // Ok
// Throws ArgumentException
// Type "OracleDbType.Int64" cannot be used in PL/SQL table parameter.
op.ArrayLength = 3;
Console.WriteLine(op.OracleDbType);
}
}
}
如果我将dbType
参数更改为Devart.Data.Oracle.OracleDbType.Integer
,则不会抛出ArgumentException
(但是,我需要int64数据类型,这就是为什么这不是一个选项)。
我在这里缺少什么?