网络编程
位置:首页>> 网络编程>> 数据库>> 如何处理Oracle中较大的文本数据?

如何处理Oracle中较大的文本数据?

 来源:asp之家 发布时间:2009-11-11 20:06:00 

标签:oracle,文本,数据,数据库

请问如何处理Oracle中较大的文本数据?

我们可在ASP中予以解决,如在Oracle8i中文版中,建立数据表:
CREATE TABLE SYSTEM.TEST(
BLOB  LONG,
ID    NUMBER)
/

date.asp

' 存入数据
<%

' 表单提交处理部分
If request("ok")=1 then
    
    function tansstr(sstr) 
        sstr=replace(sstr," ","&nbsp;")
         sstr=replace(sstr,chr(13) & chr(10),"<br>")
         tansstr=sstr
    end function
    ' 字符转换函数
    a=lenb(request("text"))
    b=len(request("text"))
    c=tansstr(request("text"))
    ' 提交数据赋值
    Set OraSession=CreateObject("OracleInProcServer.XOraSession")
    Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0)
    Set rs=OraDatabase.CreateDynaset("select * from date order by id desc",0)            
    ' 打开数据库date表以rs为记录集
    if rs.eof then
        id=1
    ' 求ID值
    else
        id=rs("id")+1
    end if
' 受SQL语句长度限制,以非SQL语句存入数据
    
    rs.DbAddNew
   ' 新建记录
    rs.Fields("blob").DbAppendChunk(c)
    ' 用rs记录集的Fields对象的DbAppendChunk方法处理大字段存入.这是关键哦
    
    rs("id")=id
    ' 存入ID值
    rs.DbUpdate
    ' 刷新记录集
' 显示结果部分
    Response.write "恭喜,数据已成功存入数据库中!<br>"
    Response.write "总计占用字符数:<font color=blue>" & formatnumber(b,2,-2,-2,-1) & "</font> 字节<br>"
    Response.write "<a href='view.asp'>调出数据</a>"
    
    rs.close
    set rs=nothing
    Set OraSession=nothing
    ' 关闭数据连接。
    Response.end
End If
%>
<html>
<body>
<form method="POST" action="date.asp">
  <p><font><b>精彩春风之Oracle数据存储</b></font></p>
  <p><textarea rows="13" name="text" cols="104"></textarea></p>
  <p><input type="submit" value="存入" name="B1"></p>
  <input type="hidden" name="ok" value="1">
</form>
</body>
</html>

view.asp  

' 数据调出程序: 
<%
Set OraSession=CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0)
Set Rs=OraDatabase.DbCreateDynaset("select * from date order by id desc",4)
' 连接数并以只读方式打开数据表
Size=65280
' 赋初始值.定义每次截取字节大小为1024byte,最大可以设为65280byte(64K)
I=0
Do
    Text=Rs.Fields("Blob").DbGetChunk(I*Size,Size)
     ' 以rs记录集的Fields对象的DbGetChunk方法在循环中读出数据
 
    Response.write Text
    
    Text_Size=Lenb(Text)
    ' 算出每次取出数据的详细字节数
    I=I+1
Loop until Text_Size<Size
' 如果每次取出数据的字节数小于定义的截取字节,则说明该数据已经完毕,退出循环
Set OraSession=nothing
' 关闭数据连接
%>

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com