表table建了一个CLOB字段,请问如何插入长字符串呢,,老提示"字符串文字太长"我在CSDN上查了一个贴子,,(如下),,可是还是提示错误...请高手指导呀..我用的VB.请参照以下示例进行操作
由于CLOB操作的特殊性,你必须先插入表中的其余字段数据,生成数据行之后,再使用更新的方式写入CLOB字段
并且,在插入时,必须先在CLOB字段中写入一个空值,示例如下
sql = "insert into table(id,title,clob) values(id值,title值,empty_clob())";
如此之后,再调用如下的过程实现CLOB字段写入
SQL语句示例:
sql = "update table set clob = :value where id=id值";
由于CLOB操作的特殊性,你必须先插入表中的其余字段数据,生成数据行之后,再使用更新的方式写入CLOB字段
并且,在插入时,必须先在CLOB字段中写入一个空值,示例如下
sql = "insert into table(id,title,clob) values(id值,title值,empty_clob())";
如此之后,再调用如下的过程实现CLOB字段写入
SQL语句示例:
sql = "update table set clob = :value where id=id值";
解决方案 »
- exp导出的10g的数据库可以恢复到11g么
- 再次求教触发器问题
- 关于FOR...IN..LOOP的疑问
- oracle公司的笔试题,请求各位高手的帮助
- cmd里用exp语句导出数据库时,密码里含有@,怎么办?
- 如何用表的一部分记录,更新另一部分?
- 在pl/sql->command window 中执行后并没有输出结果呀?
- IIS+ASP+Oracle9i应用中的系统用户权限难题
- 在jsp中想导入oracle的两个包,怎么弄?
- 高手请进
- 统计表中相同地区(区号)的数量,并倒序排序.
- 存储过程中诸如UTL_RAW.CAST_TO_RAW这样的包函数哪里能找到相关说明?oracle sql reference里怎么搜不到?
在vb中的处理
在vb中处理大对象,一般可以用OO4O(oracle objects for ole)来处理大对象。这里介绍一种不用0040处理大对象blob的方法。
下面这段程序可以将一个文件(文本文件,doc文件,图象文件等)保存到数据库中,并可以将其从数据库读出
需要两个commandbutton
cmd1 名称 cmdsave caption 保存
cmd2 名称 cmdread caption 读取
一个cmddialog控件
同时需要创建一张表t_demo(字段id 类型 number,;字段text 类型 blob;)
exmple 3.
Option Explicit
Dim rn As ADODB.Connection
Public Function CreateDataSource(DataSource As String, UserID As String, Password As String) As Boolean
On Error GoTo DbConErr:
Set rn = New ADODB.Connection
With rn
.ConnectionString = "Provider=OraOledb.Oracle.1;" & _
"password=" & Password & ";" & _
"User ID =" & UserID & ";" & _
"Data Source=" & DataSource & ";" & _
"Locale Identifier=2052"
.Open
End With
CreateDataSource = True
Exit Function
DbConErr:
CreateDataSource = False
End Function
Private Sub cmdRead_Click()
Dim rs As New ADODB.Recordset
rs.ActiveConnection = rn
rs.LockType = adLockOptimistic
rs.CursorLocation = adUseClient
rs.Source = "select * from t_demo"
rs.Open
ComDlgDir.DialogTitle = "保存文件"
ComDlgDir.Filter = "*.*"
ComDlgDir.ShowSave
Call BlobToFile(rs.Fields("text"), ComDlgDir.filename)
Set rs = Nothing
Exit Sub
Set rs = Nothing
End Sub
Private Sub cmdsave_Click()
Dim rs As New ADODB.Recordset
rs.ActiveConnection = rn
rs.LockType = adLockOptimistic
rs.CursorLocation = adUseClient
rs.Source = "select * from t_demo"
rs.Open
rs.AddNew
ComDlgDir.DialogTitle = "选取文件"
ComDlgDir.ShowOpen
rs.Fields("id").Value = 1
If ComDlgDir.filename <> "" Then
Call FileToBlob(rs.Fields("text"), ComDlgDir.filename)
rs.Update
End If
Set rs = Nothing
Exit Sub
Set rs = Nothing
End Sub
Private Sub Form_Load()
If Not CreateDataSource("sid", "systemp", "manager") Then
MsgBox "Connection failure!"
End If
End Sub
fld As ADODB.Field, filename As String, Optional ChunkSize As Long = 8192)
Dim fnum As Integer, bytesleft As Long, bytes As Long
Dim tmp() As Byte
If (fld.Attributes And adFldLong) = 0 Then
Err.Raise 1001, , "field doesn't support the GetChunk method."
End If
If Dir$(filename) = "" Then Err.Raise 53, , "File not found"
fnum = FreeFile
Open filename For Binary As fnum
bytesleft = LOF(fnum)
Do While bytesleft
bytes = bytesle