C# 从oracle db的长原始数据中检索字节数组

C# 从oracle db的长原始数据中检索字节数组,c#,oracle,oracle11g,C#,Oracle,Oracle11g,我试图从oracle 11g数据库中的一个长原始字段中提取数据。但是,当我尝试以下操作时,我始终得到“指定的强制转换无效”: cmd.InitialLONGFetchSize = 1000000; cmd.AddRowid = true; byte[] PicTempArray = new Byte[1024]; Oracle.DataAccess.Client.OracleDataReader Reader = cmd.ExecuteReader(); int i = 0; while (R

我试图从oracle 11g数据库中的一个长原始字段中提取数据。但是,当我尝试以下操作时,我始终得到“指定的强制转换无效”:

cmd.InitialLONGFetchSize = 1000000;
cmd.AddRowid = true;
byte[] PicTempArray = new Byte[1024];
Oracle.DataAccess.Client.OracleDataReader Reader = cmd.ExecuteReader();

int i = 0;
while (Reader.Read())
{
   try
      {
      PicTempArray[i] = Reader.GetByte(0);
      }
   catch
      {
      }
   i++;
}

如果我做错了几件事,我不会感到惊讶。如果你没有猜到长的RAW保存了一些图像数据。非常感谢您的建议。

GetByte
用于从数字列中检索单个字节

您需要的是
GetBytes
。您可能还应该阅读“获取长时间的原始数据”一文


(顺便说一句,我希望你没有一个空的catch块——如果你用camelCase作为局部变量名,并且在
try
catch
块中使用大括号,你的代码会更习惯,因为它们是
while
块。)

好的,谢谢。我以前试过,但其中一个参数出现了错误。我很感激你让我回头再试一次。那OLDDB呢。。InitialLONGFetchSize是否有替代方案。。但事实并非如此existed@Saeed当前位置我不太理解你的评论,但听起来你应该写一个新问题。