Asp中对Oracle的Long类型字段的存取操作如何解决??急!!!请高手帮忙~~~~~~~~~~~~

逍遥小贼 2002-11-28 04:48:32
在ASP的一个页面中有一个输入框,需要在其中输入大量字符,超过8000字节,因此我在Oracle数据库中选择了Long字段来进行存储。
当字符数不超过4000(英文)时,存、读都没有问题。可是一旦字符数超过4000,就出现错误如下:
---------------------------------------
HTTP 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

技术信息(适用于支持人员)

错误类型:
Microsoft OLE DB Provider for Oracle (0x80004005)
ORA-01704: 文字字符串过长
/oracleoa/manager_mailbox/a_save.asp, 第 21 行

浏览器类型:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

页:
POST 12091 bytes to /oracleoa/manager_mailbox/a_save.asp

POST 数据:
Title=afaewraw&opt=pub&Type=%B7%A2%D5%B9%D5%BD%C2%D4&Content=%B0%A1%C0%CF%C4%EA%B7%A8%B0%AE%C5%B6%B7%F4%C9%AB%B4%F3%B5%C4%B0%A1%C0%CF%C4%EA%B7%A8%B0%AE%C5%B6%B7%F4%C9%AB%B4%F3%B5%C4%B0%A1%C0%CF%C4%EA% . . .

---------------------------------------
哪位高手能帮我解决这个问题??我将非常感谢!

...全文
53 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
逍遥小贼 2002-12-03
  • 打赏
  • 举报
回复
是么,那我去试试,谢谢了
qdlover 2002-12-03
  • 打赏
  • 举报
回复
recordset打开方式用3,3就可以addnew了
fox_small 2002-12-03
  • 打赏
  • 举报
回复
up
逍遥小贼 2002-11-29
  • 打赏
  • 举报
回复
不过我按照上面的例子,结合自己的程序进行了修改,在运行到“InsertCursor.AddNew”这一句时报错:“对象或提供者不支持该操作”,
能不能帮我分析一下原因?谢谢!
或者给我提供一个有效的实际程序例子呢?谢谢!
mnwind 2002-11-29
  • 打赏
  • 举报
回复
超长的字符串只有用command写入是对的
逍遥小贼 2002-11-28
  • 打赏
  • 举报
回复
up:)
高手门快来帮忙解决一下吧!
逍遥小贼 2002-11-28
  • 打赏
  • 举报
回复
是的,两个逗号之间本来应该是Dataconn这个参数的,现在在cmdTemp中设置了,就空在那里:)
awaysrain 2002-11-28
  • 打赏
  • 举报
回复
InsertCursor.Open cmdTemp, , 1, 3 ???
逍遥小贼 2002-11-28
  • 打赏
  • 举报
回复
我在书上看到这么一种办法,尝试之后发现会出现问题:到了InsertCursor.AddNew 这一步时报错:对象或提供者不支持该操作
能否告知原因??谢谢

----------------------------------
如何操作大容量的字符串

写sql语句无法操作大容量的字符串,如sql server的text类型、 access的memo类型或oracle的long类型的字段,由于sql语句本身长度的限制,无法写入超长的字符串,但可以使用command写入。
例如:
dim dataconn
Set DataConn = Server.CreateObject("ADODB.Connection")
dataconn.open "yourDSN","yourName","yourPass"
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set InsertCursor = Server.CreateObject("ADODB.Recordset")
    cmdTemp.CommandText = _
"SELECT *, UserName FROM yourField WHERE (UserName IS NULL)"
    cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = DataConn
    InsertCursor.Open cmdTemp, , 1, 3
    InsertCursor.AddNew
InsertCursor("yourMemo") =strMemo
  InsertCursor.Update
  InsertCursor.close
    dataConn.close
------------------------------------
awaysrain 2002-11-28
  • 打赏
  • 举报
回复
注:以上方法只是设想
awaysrain 2002-11-28
  • 打赏
  • 举报
回复
oracle 里好象SQL的长度不能超过8000,想办法吧
截了吧
先INSERT 再UPDATE
UPDATE TABLE1 SET AAA=AAA||'后面的字符'

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧