如何输出ORACLE中保存的BLOB数据

zuiaixiaoyi_ok 2006-04-24 09:54:58
小妹在CSDN社区受益匪浅,首先感谢各位对我的帮组!
还有迷惑希望大家继续帮忙啊。
在ORACEL中保存大对象数据应该采用什么样的格式,BLOB还是CLOB?有什么差别呢?该怎样保存?怎样将内容输出到页面呢?
再次谢谢大家!!
完了,只有这么多分了,不好意思啊!!
...全文
252 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
calmzeal 2006-04-25
  • 打赏
  • 举报
回复
BLOB存2进制大对象
CLOB存大文本

读取都可以(DataAdpter,DataReader)
DR:
(byte[])DR["LobField"]

DA,DS:
(byte[])ds.Tables[0].Rows[i]["LobField"]

see:
http://calmzeal.cnblogs.com/archive/2006/04/19/379109.html
机器人 2006-04-25
  • 打赏
  • 举报
回复
在msdn上搜索一下BLOB,就可以看到详细说明

下面是简单试例,使用.NET For Oracle Data Provider
Imports System.Data.OracleClient

UpdateDeptLOGO方法是将图片更新到数据库。

ShowDeptLOGO方法是将图片取出来放到PictureBox上。

至于输出到Asp.net页面上也类似,只不过目标变为Response了

可以用Response.BinaryWrite方法,将图片的Byte()输出。

Public Sub UpdateDeptLOGO(ByVal intDeptNO As Integer, ByVal bytsLogo As Byte())
Dim strSql As String = "UPDATE DEPT_LOGO SET LOGO=:PI_LOGO WHERE DEPTNO=:PI_DEPTNO"

Try
objConn = New OracleConnection(strConn)
objComm = New OracleCommand(strSql, objConn)
objComm.Parameters.Add("PI_LOGO", OracleType.Blob).Value = bytsLogo
objComm.Parameters.Add("PI_DEPTNO", OracleType.Number).Value = intDeptNO
objConn.Open()
objComm.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not objConn Is Nothing Then
objConn.Close()
End If
End Try

End Sub

Public Sub ShowDeptLOGO(ByVal intDeptNO As Integer)
Dim strSql As String = "SELECT LOGO FROM DEPT_LOGO WHERE DEPTNO=:PI_DEPTNO"
Dim objDataReader As OracleDataReader
Dim bytsLogo() As Byte
Dim ms As MemoryStream
Try
objConn = New OracleConnection(strConn)
objComm = New OracleCommand(strSql, objConn)
objComm.Parameters.Add("PI_DEPTNO", OracleType.Number).Value = intDeptNO
objConn.Open()
objDataReader = objComm.ExecuteReader(CommandBehavior.SequentialAccess)
If objDataReader.Read() Then
ms = New MemoryStream(CType(objDataReader.GetValue(0), Byte()))
Me.PictureBox1.Image = New Bitmap(ms)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not objConn Is Nothing Then
objConn.Close()
End If
End Try
End Sub

Public Shared Function GetPicture(ByVal filePath As String) As Byte()
Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)

Dim picture() As Byte = br.ReadBytes(fs.Length)

br.Close()
fs.Close()

Return picture
End Function
zuiaixiaoyi_ok 2006-04-25
  • 打赏
  • 举报
回复
怎么每人肯帮忙呢?大家都不使用ORCLE 还是怎么回事啊?帮帮忙啊!
zuiaixiaoyi_ok 2006-04-24
  • 打赏
  • 举报
回复
怎么没人回答啊?请大家多帮忙

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧