ASP+数据库Oracle 9i 长字符数据的存储,高手快来帮忙,搞不定会死人的,救命啊!

zhonggan 2005-05-26 09:40:54
ASP+数据库Oracle 9i

下面的Content字符串的长度小的话,没问题,但是一长就出错,而且LONG类型不能换成其它的类型的,就算换成CLOB也一样不行。

表:News
字段 ID(序列号),Subject(VarChar2 Default ''),Content(Long Default '')

第一种:
StrSql="insert into News(ID,Subject,Content)Values(Seq_News.nextval,'"&Subject&"','"&Content&"')"
objConn.execute StrSql
执行出错:
Microsoft OLE DB Provider for Oracle 错误 '80004005'
ORA-01704: 文字字符串过长

这样子不行噢, 我换:

第二种:
StrSql="select * from ghzc_News"
Set rsAdd = Server.CreateObject("ADODB.RecordSet")
rsAdd.open StrSql,objConn,1,3
rsAdd.Addnew
这里出错啦:
ADODB.Recordset 错误 '800a0cb3'
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。

双不行是不是:
我在换,写存储过程:

第三种
create or replace procedure sp_News(
v_fun in number,
v_id in number,
v_subject in varchar2,
v_content in Long
) is
begin
if v_fun=1 then
insert into news(id,Subject,Content)
values
(seq_news.nextval,v_subject,v_content);
end if ;
if v_fun=2 then
update news set subject=v_subject,
content=v_content where id=v_id ;
end if;
end sp_News;
大家别说这个存储过程有问题,因为我测试过了,字符串小的还是没有问题的
StrSql="Call sp_News(1,0,'"&Subject&"','"&Content&"')"
objConn.execute StrSql
这里执行:数据小的没有问题,数据一大双出错啦
Microsoft OLE DB Provider for Oracle 错误 '80004005'
ORA-01704: 文字字符串过长

以上三种方法中:
第一种不行可以理解
第二种不行是为什么啊, 我以前做都是这样做的啊
第三种方法是我做JSP是做过的,用传参数调用存储过程,多大都没有问题(当然了,文本的不可能超过2G了)

现在主要是问大家第二种,第三种方法不行的原因,字段的类型是不可能换的啦,就是用LONG

在线等,各位大大不救我,我就要被炒啦

救命啊,救了我来福州我请吃饭,嘎嘎!




...全文
82 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhonggan 2005-05-26
  • 打赏
  • 举报
回复
问题搞定了
StrSql="Call sp_News(1,0,'"&Subject&"','"&Content&"')"
objConn.execute StrSql
是这里用错了
只要写成
StrSql="{Call sp_News(1,0,'"&Subject&"','"&Content&"')}"
objConn.execute StrSql
这样就OK了

但不管怎么说,也要谢谢楼上的朋友!
mymyal123 2005-05-26
  • 打赏
  • 举报
回复
ASP是调用存储过程

<%@ Language=VBScript %>

<%

Dim CmdSP

Dim adoRS

Dim adCmdSPStoredProc

Dim adParamReturnValue

Dim adParaminput

Dim adParamOutput

Dim adInteger

Dim iVal

Dim oVal

Dim adoField

Dim adVarChar



‘这些值在 VB 中是预定义常量,可以直接调用,但在 VBScript 中没有预定义

adCmdSPStoredProc = 4

adParamReturnValue = 4

adParaminput = 1

adParamOutput = 2

adInteger = 3

adVarChar = 200



iVal = 5

oVal = 3



'建一个command对象

set CmdSP = Server.CreateObject("ADODB.Command")



'建立连结

CmdSP.ActiveConnection = "Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs"



'定义command 对象调用名称

CmdSP.CommandText = "sp_PubsTest"



'设置command调用类型是存储过程 (adCmdSPStoredProc = 4)

CmdSP.CommandType = adCmdSPStoredProc



'往command 对象中加参数

'定义存储过程有直接返回值,并且是个整数,省缺值是4

CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)

'定义一个字符型输入参数

CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")

'定义一个整型输入参数

CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)

'定义一个整型输出参数

CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)



'运行存储过程,并得到返回记录集

Set adoRS = CmdSP.Execute





'把每个记录打印出来,其中的字段是虚拟的,可以不用管

While Not adoRS.EOF



for each adoField in adoRS.Fields

Response.Write adoField.Name & "=" & adoField.Value & "<br/>" & vbCRLF

Next

Response.Write "<br/>"

adoRS.MoveNext

Wend



'打印两个输出值:

Response.Write "<p>@intIDOut = “ & CmdSP.Parameters("@intIDOut").Value & "</p>"

Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>"





'大扫除

Set adoRS = nothing

Set CmdSP.ActiveConnection = nothing

Set CmdSP = nothing

%>
zhonggan 2005-05-26
  • 打赏
  • 举报
回复
mymyal123(风之森)
一样不行啊
mymyal123 2005-05-26
  • 打赏
  • 举报
回复
第二种:
rsAdd.open StrSql,objConn,3,3
Oracle9i备课笔记——吕海东 第1讲 Oracle9i简介 目的: 1. 了解数据的发展,关系数据的基本原理。 2. 了解目前市场上流行的数据产品及特点 3. 了解Oracle数据的发展 4. 掌握Oracle9i产品系列 5. 掌握Oracle9i Database Server的新特点及其在实际中的应用 6. 安装Oracle9i Database Server, Client及客户端常用工具TOAD7.5.2 授课内容: 1.1 作为软件开发人员,在当今就业市场上最应该掌握的技能: (1) 数据技术:SQL Server, Oracle, DB2, Access, SQL, T-SQL, PL/SQL (2) 软件开发架构:J2SE, J2ME, J2EE, MS.NET (3) 开发语言: Java, C#.NET, J#.NET, VB.NET (4) Ineternet技术:HTML, XML, Web Service. JSP, ASP.NET, JSF (5) 软件工程:OOA, OOD, UML, RUP. (6) IDE开发工具:VS.NET 2003, JBuilderX, DreamwaverMX, Java Studio, IBM WebSpere Studio。 (7) 系统平台:Windows Server, Linux, Unix (8) 应用平台:IIS, Tomcat, Weblogic, WebShpere, Oracle AS. (9) 自然语言:英语,日语 1.2 学习Oracle数据的重要性 (1) 数据在当今世界的重要性。 (2) Oracle数据的市场应用的广泛性。 (3) Oracle数据的跨平台性,与Java语言对比说明。 (4) Oracle对大量数据管理的性能。数据存储,修改,查询的性能是应用系统必须要考虑的首要因素。 1.3 Oracle数据的特点: (1) 可移植性: (2) 跨硬件,软件平台 (3) 高性能,大容量 (4) 数据的并发性:Oracle并发模型是独一无二的,优于IBM和Microsoft公司。大的ERP厂家都使用Oracle数据的原因之一。 1.4 Oracle9i产品的构成 - Oracle9i已经不是一个简单的数据服务器产品,而是一个完整的应用系统运行,开发平台。 - Oracle9i的产品系列包括: (1) Oracle9i Database Server (9iDS) (2) Oracle9i Application Server(9iAS): 支持J2EE架构的应用服务器。 (3) Oracle9i JDeveloper: IDE的java和Oracle应用开发工具。 (4) Form developer (5) Report Developer (6) Oracle9iDS的产品版本 (1) Enterprise Edition(企业版):带有数据仓库,OLTP的高级技术组件。高效的处理大数据量的技术支持。 (2) Standard Edition (标准版):适用于部门级的数据规模。 (3) Personal Edition (个人版):单用户的开发测试系统。 1.5 Oracle9i数据管理系统应用模式: (1) 客户/服务器模式: - Oracle9i数据管理系统采用client/Server工作模式 - 数据的核心运行在Server端:数据数据,管理系统,访问控制,安全控制,接受客户的请求,向客户发送响应信息都在服务器端完成。Server端要安装Oracle Server产品。 - 用户通过Oracle的客户端工具连接服务器端,向Server发送SQL命令,接收Server的发送结果,显示在client端的用户界面上。客户端要安装Oracle客户端软件。同时安装后要对客户端进行配置,以连接到某个数据。 (2) 多层运行模式:针对Internet 1.6 Oracle服务器的标识 从Oracle8i开始,为了在Internet发布Oracle数据Oracle的标识采用了全局服务名的概念。 (1) 全局服务名:为了区分整个网络范围内的数据,全局服务名的格式一般是:servername.companyname.com, 类似与Internet的域名规范。 (2) SID: System Identifier 系统标识的缩写,用于区分同一台服务器上不同的数据例程。 1.7 Oracle9i数据管理系统的安装 - Oracle9i DS的安装文件在3张CD上。 - 9i DS的要求环境: CPU: Pentium 166 above RAM: 最低128, 一般256, 最好512M。 HD: 空闲空间要求4G. OS: Server端要求windows 2000 server (SP3以上), 2003 Server. Client端: windows98, 2000 professional, windows ME, windows XP, 2000 Server. - 9iDS Server端安装: (1) DISK1 ->开始安装 (2) 选择安装路径 (3) 选择安装产品: (4) 选择版本: (5) 选择数据配置: (6) 设定数据标识: (7) 确定数据文件的位置: (8) 确定数据字符集 (9) 安装后自动进行的任务: <1> 网络配置助手完成网络的配置 <2> Oracle HTTP服务启动 <3> Oracle数据配置助手完成数据的创建和启动 <4> Oracle智能代理启动 (10) 显示服务器创建完成信息: (11) 进行数据管理员的密码重新设定: - 9i DS client端安装: (1) DISK1在客户机上 (2) 选择产品:Oracle9i client (3) 选择客户端安装类型类型: <1>管理员类型:安装管理控制台,管理工具,网络服务,使用程序,和基本的客户端软件。 <2>运行时类型:只安装应用开发程序,网络服务,基本客户软件 <3>自定义:自己决定的组件安装。 (4) Oracle Net Configuration Assistant: (5) 配置client网络服务:使用Net Manager进行客户端的配置。 - Server上安装后的产品: - Client机器上的安装产品: - Server计算机上的服务:

28,409

社区成员

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

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