我需要在Oracle 数据库中插入一个ulong
(即)数字,但我正在运行一个. 我将它插入一列,我向自己保证应该能够存储从 0 到 2^64-1 的任何数字。 UInt64
ArgumentException
NUMBER
这是一个将重现错误的最小示例:
// First create the following table:
//
// CREATE TABLE SampleTable (SampleColumn NUMBER)
//
using (var dbConnection = new OracleConnection("..."))
{
ulong valueToInsert = 123;
OracleCommand command = dbConnection.CreateCommand();
command.CommandText = @"INSERT INTO SampleTable (SampleColumn) VALUES (:SampleColumn)";
command.Parameters.Add("SampleColumn", valueToInsert);
command.ExecuteNonQuery();
}
valueToInsert
如果是任何其他整数类型(包括),则此代码可以正常工作long
,但是当我尝试使用 时ulong
,我收到以下错误:
System.ArgumentException was unhandled by user code
HResult=-2147024809
Message=Value does not fall within the expected range.
Source=Oracle.DataAccess
StackTrace:
at Oracle.DataAccess.Client.OracleParameter..ctor(String parameterName, Object obj)
at Oracle.DataAccess.Client.OracleParameterCollection.Add(String name, Object val)
为什么会这样?
PS 我已经尝试使用 Oracle.DataAccess 2.112.1.2 和 Oracle.ManagedDataAccess 4.212.1.0。