2011-04-27 77 views
1

我想在C#.NET中使用System.Data.OracleClient命名空間從Oracle讀取一些二進制數據。Oraclebinary:讀取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)格式的值」。

我期待BLOB的一些整數(負&爲正數)。

不知道是否有人可以幫助,因爲我不能再問管理員(移動)。如果有人能指出我的方向,我將非常感激。

編輯:只是爲了擴大(I錯過了一個比特信息的)什麼團塊包含:

位置日誌的值的矢量,使得所述第一元件是所述第一測量的深度值,所述第二元件是第一個真正垂直深度值,所述第三元件是所述第一x偏移量,第四是第一y偏移,第五個是第二measred深度

非常感謝 羅布

+0

BLOB是否只包含一個整數? – 2011-04-27 15:43:41

+0

看起來它的字節數組 – rob 2011-04-27 15:56:24

回答

1

如何將數據從OracleBinary類的值轉換爲整數?

這就是:

OracleBinary obj = reader.GetOracleBinary(5); 
byte[] bytes = obj.Value; 
int value = BitConverter.ToInt32(bytes); 

但你肯定這是你真正想要的是什麼?整數值通常不存儲在BLOB中...... BLOB被設計爲包含任意二進制數據,例如圖像。

+0

只是增加了一些信息,如果它甚至有幫助,那就是我得到的! – rob 2011-04-27 15:56:02

+0

@rob,您添加的信息很重要,但這還不夠...您需要知道blob中值的實際類型才能夠讀取它們。他們是整數還是浮點數?它們的大小是多少? – 2011-04-27 22:52:38