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 并使用字节数组。
我正在尝试检索在 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 并使用字节数组。