Ado.net 如何存取Oracle的blob列
时间: 2024-01-09 17:04:06 浏览: 136
在ADO.NET中,您可以使用OracleDataReader类和OracleLob类来访问Oracle数据库中的BLOB列。下面是一个示例代码,展示如何读取和写入BLOB数据:
读取BLOB数据:
```csharp
OracleCommand cmd = new OracleCommand("SELECT BLOB_COLUMN FROM TABLE_NAME WHERE ID = :ID", connection);
cmd.Parameters.Add(":ID", OracleDbType.Int32).Value = 1;
OracleDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
OracleLob blob = reader.GetOracleLob(0);
byte[] buffer = new byte[blob.Length];
blob.Read(buffer, 0, buffer.Length);
// 处理读取到的BLOB数据
}
```
写入BLOB数据:
```csharp
OracleCommand cmd = new OracleCommand("INSERT INTO TABLE_NAME (ID, BLOB_COLUMN) VALUES (:ID, :BLOB)", connection);
cmd.Parameters.Add(":ID", OracleDbType.Int32).Value = 1;
OracleLob blob = new OracleLob(OracleDbType.Blob);
cmd.Parameters.Add(":BLOB", OracleDbType.Blob).Value = blob;
byte[] data = // 读取要写入的BLOB数据
blob.Write(data, 0, data.Length);
cmd.ExecuteNonQuery();
```
需要注意的是,OracleLob类是OracleDataReader和OracleParameter的特殊参数类型,它允许您读取和写入BLOB数据。
阅读全文