当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
2015年Oracle认证考试辅导:Oracle大文本在A 中存取问题的解决
发布时间:2010/3/13 11:22:07 来源:城市学习网 编辑:MOON
  在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题。
  一、运行环境:
  1、Microsoft Windows 2000 Server IIS 5.0
  2、Oracle8i中文标准版
  二、建立数据表:
  CREATE TABLE SYSTEM.TEST
  /
  三、源程序:
  1、数据存入程序:test.asp
  <%
  ’表单提交处理部分
  ’
  If request=1 then
  ’字符转换函数
  function tansstr
  sstr=replace
  sstr=replace &. chr,"<br>")
  tansstr=sstr
  end function
  ’提交数据赋值
  a=lenb)
  b=len)
  c=tansstr)
  ’打开数据库,打开test数据表以Rs为记录集
  Set OraSession=CreateObject
  Set OraDatabase=OraSession.DbOpenDatabase
  Set rs=OraDatabase.CreateDynaset
  ’求ID值
  if rs.eof then
  id=1
  else
  id=rs 1
  end if
  ’因为受SQL语句长度大小限制所以,以非SQL语句存入数据
  ’
  ’新建记录
  rs.DbAddNew
  ’经典就在本句:以RS记录集的Fields对象的DbAppendChunk方法处理大字段存入问题。
  rs.Fields.DbAppendChunk
  ’存入ID值
  rs=id
  ’刷新记录集
  rs.DbUpdate
  ’显示结果部分
  ’-
  Response.write "数据已经存入数据库中。<br>"
  Response.write "总计占用字符数: <font color=blue>" &. formatnumber &. "</font> 字<br>"
  Response.write "总计占用字节数: <font color=blue>" &. formatnumber &. "</font> Byte<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="test.asp">
  <p><font color="#FF0000"><b>Oracle大字段在ASP中存取问题的解决:</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>
  2、数据调出程序:view.asp
  <%
  ’连接数据库,以只读方式打开数据表
  Set OraSession=CreateObject
  Set OraDatabase=OraSession.DbOpenDatabase
  Set Rs=OraDatabase.DbCreateDynaset
  ’赋初值:定义每次截取字节大小为1024byte,最大可以设为65280byte (64K)
  Size=65280
  I=0
  Do
  ’以Rs记录集的Fields对象的DbGetChunk方法在循环中读出数据
  Text=Rs.Fields.DbGetChunk
  Response.write Text
  ’求出每次取出数据的详细字节数
  Text_Size=Lenb
  I=I 1
  ’如果每次取出数据的详细字节数小于欲定义的截取字节大小则说明该条数据已经完毕,退出循环。
  Loop until Text_Size<Size
  ’关闭数据连接
  Set OraSession=nothing
  %>
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved