Я пытаюсь получить сертификат, хранящийся как BLOB в базе данных Oracle, но я продолжаю получать пустой массив байтов. Вот фрагмент кода:OracleDataReader возвращает пустой массив байтов для столбца BLOB
OracleCommand command = new OracleCommand(QUERY_GETURLS, connection);
OracleDataReader reader = null;
try
{
connection.Open();
reader = command.ExecuteReader();
while (reader.Read())
{
string organization = reader["Organization"].ToString();
string type = reader["Type"].ToString();
string url = reader["DestinationUrl"].ToString();
byte[] certificate = (byte[])reader["Certificate"];
Организация, тип и URL возвращаются в порядке, но поле сертификата всегда возвращает пустой массив байтов. Если я вручную запускаю тот же запрос к базе данных, возвращается столбец BLOB. Тип данных столбца - LONG RAW, и я использую ODP.NET.
Вы посмотрели на сопоставления OracleDataType здесь https://msdn.microsoft.com/en-us/library/yk72thhd%28v=vs.110%29.aspx – MethodMan
'OracleDataReader reader', возможно,' BinaryReader' будет работать или взгляните на эту ссылку https://www.devart.com/dotconnect/oracle/articles/lob.html – MethodMan
@MethodMan за это. Я нашел версию ODP.NET этой страницы здесь https://docs.oracle.com/cd/B28359_01/win.111/b28375/featTypes.htm, и они заявляют, что мне нужно использовать OracleBinary, если мой тип столбца - LONG RAW , Я думаю, мне нужно изменить колонку на BLOB и использовать массив байтов. – farbodg