OracleDataReader 为 BLOB 列返回空字节数组

OracleDataReader returning empty byte array for BLOB column

我正在尝试检索在 Oracle 数据库中存储为 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 返回正常,但证书字段始终 returns 一个空字节数组。如果我手动 运行 对数据库执行相同的查询,则会返回 BLOB 列。列数据类型是 LONG RAW,我使用的是 ODP.NET.

感谢 MethodMan,我能够找到显示要用于 ODP.NET:

的数据类型的适当页面

docs.oracle.com/cd/B28359_01/win.111/b28375/featTypes.htm

我可以将 OracleBinary 用于 LONG RAW。经过进一步研究,Oracle 社区似乎正在从 LONG RAW 转向 BLOB。我打算将我的列数据类型切换为 BLOB 并使用字节数组。