我试图在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返回正常,但证书字段始终返回空字节数组。如果我手动对数据库运行相同的查询,则返回BLOB列。列数据类型是LONG RAW,我正在使用ODP.NET。
答案 0 :(得分:1)
感谢MethodMan,我找到了合适的页面,显示了用于ODP.NET的数据类型:
docs.oracle.com/cd/B28359_01/win.111/b28375/featTypes.htm
我可以使用OracleBinary进行LONG RAW。经过进一步的研究,似乎Oracle社区正在远离LONG RAW并转向BLOB。我将把列数据类型切换为BLOB并使用字节数组。