1

C#.NETのSystem.Data.OracleClient名前空間を使用して、Oracleからいくつかのバイナリデータを読み取ろうとしています。

データを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からいくつかの整数(負と正)を期待していました。

私はもう管理者に尋ねることができないので、誰かが助けることができるかどうかわかりません(先に進みます)。誰かが私をある方向に向けることができれば、私は大いに感謝します。

編集:ブロブに含まれるものを拡張するだけです(私は少し情報を逃しました):

最初の要素が最初の測定された深度値、2番目の要素が最初の真の垂直深度値、3番目の要素が最初のxオフセット、4番目が最初のyオフセット、5番目が2番目に測定された深さ

どうもありがとうロブ

4

1 に答える 1

1

データをOracleBinaryクラス値から整数に変換するにはどうすればよいですか?

ここにあります:

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

しかし、それが本当に欲しいものだと確信していますか?通常、整数値はBLOBに格納されません... BLOBは、画像などの任意のバイナリデータを含むように設計されています。

于 2011-04-27T15:42:42.820 に答える