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 的一些整数(负数和正数)。

不确定是否有人可以提供帮助,因为我无法再询问管理员(继续前进)。如果有人能指出我的方向,我将不胜感激。

编辑:只是为了扩展(我错过了一些信息)blob包含的内容:

位置日志值的向量,其中第一个元素是第一个测量深度值,第二个元素是第一个真实垂直深度值,第三个元素是第一个 x 偏移量,第四个是第一个 y 偏移量,第五个是第二测量深度

非常感谢罗

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 回答