извлечение байтового массива из LONG RAW из oracle db

2

Я пытаюсь вытащить данные из длинного необработанного поля в базу данных оракула 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++;
}

Я бы не удивился, если бы сделал несколько вещей неправильно. Если вы не догадались, что LONG RAW содержит некоторые данные изображения. Любые советы приветствуются.

Теги:
oracle11g

1 ответ

3
Лучший ответ

GetByte используется для извлечения одного байта из числового столбца.

Вместо этого вы хотите GetBytes. Вероятно, вы также должны прочитать документацию для получения "ДОЛГОВЫХ и ДОЛГОВЫХ RAW-данных".

(В стороне, надеюсь, у вас действительно нет пустого блока catch, и ваш код будет более идиоматичным, если вы использовали camelCase для своих локальных имен переменных и превзошли скобки для try и catch, как и для блока while.)

  • 0
    Хорошо, классно, спасибо. Я пробовал это раньше, и я сделал ошибку с одним из параметров. Я ценю, что ты повернул меня, чтобы попробовать это снова.
  • 0
    Как насчет OLDDB .. Есть ли альтернатива для InitialLONGFetchSize .. которого не существует
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню