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

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

请问如何处理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
' 关闭数据连接
%>

标签:oracle,文本,数据,数据库
0
投稿

猜你喜欢

  • asp清理缓存的代码

    2011-03-09 11:16:00
  • 如何从Notes中读取数据?

    2009-11-15 19:57:00
  • Dreamweaver表格布局经验谈

    2007-02-03 11:39:00
  • Access:数据转换问题

    2008-11-20 17:02:00
  • 两个百度WEB面试题 怎么做?

    2010-09-03 18:40:00
  • ASP防止图片木马上传的代码

    2011-02-05 11:08:00
  • MySQL数据库锁机制的相关原理简介

    2010-04-22 15:34:00
  • 认识延迟时间为 0 的 setTimeout

    2008-04-04 16:37:00
  • mysql中普通索引和唯一索引的效率对比

    2010-12-08 16:03:00
  • WorkBench管理操作MySQL

    2010-10-14 14:21:00
  • ASP名次排列函数

    2008-07-20 13:42:00
  • 取巧的边框等高

    2009-12-16 12:11:00
  • 动态生成的IFRAME设置SRC时的,不同位置带来的影响

    2008-03-06 13:56:00
  • JS代码混淆加密工具

    2008-05-25 13:49:00
  • ASP 相关文章或者相关产品

    2011-03-30 11:12:00
  • 一个NumericStepper组件

    2010-01-22 15:46:00
  • Mysql数据库备份和还原常用的命令

    2011-12-01 10:41:54
  • JavaScript Date()在页面内显示日期

    2008-02-05 10:18:00
  • IE不支持border-spacing的解决办法

    2009-04-28 13:11:00
  • asp #include file 与 #include virtual 的区别小结第1/2页

    2011-04-02 11:17:00
  • asp之家 网络编程 m.aspxhome.com