#c# #oracle #binary #blob #oracleclient
#c# #Oracle #двоичный #клякса #oracleclient #большой двоичный объект
Вопрос:
Я пытаюсь прочитать некоторые двоичные данные из Oracle, используя System.Data.Пространство имен OracleClient в C # .NET.
Как мне преобразовать данные из значения класса OracleBinary в целое число?
OracleConnection conn = new OracleConnection("Data Source=database;User Id=me;Password=me;");
OracleCommand cmd = new OracleCommand("Select * From SomeData.TableName WHERE vid = 4527", conn);
conn.Open();
OracleDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
OracleBinary obj = reader.GetOracleBinary(5);
// here....
}
}
finally
{
reader.Close();
}
cmd.Dispose();
conn.Close();
conn.Dispose();
В документации к этой базе данных в определении столбцов указано, что тип данных — LONG RAW и «Значения хранятся в двоичном формате большого объекта (BLOB)».
Я ожидал от большого двоичного объекта несколько целых чисел (отрицательных и положительных).
не уверен, что кто-нибудь может помочь, поскольку я больше не могу обратиться к администратору (перешел). Если бы кто-нибудь мог указать мне направление, я был бы очень признателен.
РЕДАКТИРОВАТЬ: Просто для расширения (я пропустил немного информации) того, что содержит большой двоичный объект:
Вектор значений журнала местоположения, такой, что первый элемент является первым измеренным значением глубины, второй элемент — первым истинным значением глубины по вертикали, третий элемент — первое смещение по x, четвертый — первое смещение по y, пятый — вторая измеренная глубина
Большое спасибо, Роб
Комментарии:
1. Содержит ли большой двоичный объект только целое число?
2. Судя по всему, это массив байтов
Ответ №1:
Как мне преобразовать данные из значения класса OracleBinary в целое число?
Вот оно:
OracleBinary obj = reader.GetOracleBinary(5);
byte[] bytes = obj.Value;
int value = BitConverter.ToInt32(bytes);
Но вы уверены, что это то, чего вы действительно хотите? Целочисленные значения обычно не хранятся в больших двоичных объектах… Большие двоичные объекты предназначены для хранения произвольных двоичных данных, таких как изображение.
Комментарии:
1. просто добавил немного информации, если это вообще поможет, вот и все, что у меня есть!
2. @роб, информация, которую вы добавили, важна, но этого недостаточно… вам нужно знать фактический тип значений в большом двоичном объекте, чтобы иметь возможность их прочитать. Это целые числа или числа с плавающей запятой? Каков их размер?