首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

ado.net 操作oracle中blob字段解决方法

2012-08-11 
ado.net 操作oracle中blob字段在通过adapter写入image类型的数据时,想像操作sql server的image字段那样,直

ado.net 操作oracle中blob字段
在通过adapter写入image类型的数据时,想像操作sql server的image字段那样,直接把转换成byte()的数据付给字段,结果不能完成,请问大家有什么好的方法没有,谢谢。

[解决办法]
存储过程中
UPDATE 表名
SET blob字段 = EMPTY_BLOB()
 WHERE ...;
UPDATE 表名
SET blob字段 = 传入参数(blob类型)
 WHERE...;

vb.net中
Dim cmd As New OracleCommand()
cmd = conn.CreateCommand()
cmd.Transaction = tx
cmd.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;"
cmd.Parameters.Add(New OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()

Dim tempLob As OracleLob
tempLob = cmd.Parameters(0).Value
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite)
tempLob.Write(tempBuff, 0, tempBuff.Length)
tempLob.EndBatch()

cmd.Parameters.Add(New OracleParameter("blob参数名", OracleType.Blob)).Value = tempLob
后面执行存储过程

热点排行