测试过程:
1、生成表,添加一条新纪录:
create table t_lob_test
       (id number(5),
        col_blob blob);
insert into t_lob_test values (1,empty_blob());2、VB代码(FORM1中有两个BUTTON,COMMAND1、COMMAND2),引用ADO2.5
Option Explicit
Option Base 1
Dim conn As ADODB.ConnectionPrivate Sub Command1_Click()
    'open a jpg file for testing
    Dim varBIT() As Byte, varFileSize As Long
    Open "Sample.jpg" For Binary Access Read As #1
    varFileSize = LOF(1)
    ReDim varBIT(varFileSize)
    Get #1, , varBIT()
    Close (1)
    
    'use recordset access to update LOB
    Dim rs As ADODB.Recordset, sqlstr As String
    sqlstr = "Select * from t_lob_test"
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sqlstr, conn, , adLockOptimistic
    rs("col_blob").AppendChunk varBIT()
    rs.Update
    rs.Close
    
End SubPrivate Sub Command2_Click()
    Dim varBIT() As Byte, i As Long    'open recordset and fetch LOB
    Dim rs As ADODB.Recordset, sqlstr As String
    sqlstr = "Select * from t_lob_test"
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sqlstr, conn, adOpenDynamic, adLockOptimistic
    varBIT() = rs("col_blob").GetChunk(rs("col_blob").ActualSize)
    rs.Close
    
    'write a jpg file based on what we get from recordset
    Open "test.jpg" For Binary Access Write As #1
    Put #1, , varBIT()
    Close (1)
    
End SubPrivate Sub Form_Load()
    ChDrive App.Path
    ChDir App.Path
    Dim connstr As String
    connstr = "Provider=OraOLEDB.Oracle;" & _
              "Data Source=kinghome;" & _
              "User ID=knut;" & _
              "Password=knut;" & _
              "Persist Security Info=True"
    Set conn = New ADODB.Connection
    conn.CursorLocation = adUseClient
    conn.Open connstr
    
End Sub
Private Sub Form_Unload(Cancel As Integer)
    conn.Close
End Sub
测试用过,生成一个和SAMPLE.JPG完全相同的TEST.JPG
注:如果文件很大,可以分段APPENDCHUNK/GETCHUNK