你调试你的程序,将传入条件和sql找出
然后再sqlplus下运行,看看出错吗?
正常的情况下是应该抱错的
然后再sqlplus下运行,看看出错吗?
正常的情况下是应该抱错的
解决方案 »
- 请问Oracle11g怎么卸载????
- decode函数问题。。在线等~
- oracle怎么把公司数据拷到我家里电脑上数据库,然后再本地使用呢?
- Oracle中如何表示十六进制数
- 用system登录enterprise manager console后
- datastage下怎么用表中生日字段来计算年龄?
- 怎样让SQL SERVER自动定时抽取ORACLE里的数据??
- schema的含义,在oracle中是如何建立的?
- 我修改字段类型的时候,提示说该字段数据必须为空,如何解决?
- 高分求购Rapid SQL 7.2.0正式版或注册码
- 数据库的删除效率问题
- 请问ORACLE中怎么实现按位或?急急急!!!
这个我早就做了哟。一样,在 pdSQL 中执行一样。都不报错,一直显示 executing.....(服务器刚启动试也是一样)我是装的 windows 版的 oracle 9i 我就一直怀疑是配置的问题。我装好后什么也没有动过呀!
create table test ( id number, name varchar2(4) );然后插入name字段长度超过4的字符串,看看报不报错
insert into test ( id, name ) values ( 1, 'fdafdasf' );
这个实验做过了。可以。但:
insert into test ( id, name ) values ( 1, 'fdafdasasdfasfasdfasdddddddddddddddfasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddadddddddddddddddddddasdf' );就挂了。 而在 oralce 8i 下报错。
10:12:01 SQL> insert into test ( id, name ) values ( 1, 'fdafdasf' );
insert into test ( id, name ) values ( 1, 'fdafdasf' )
*
ERROR at line 1:
ORA-01401: inserted value too large for column
Elapsed: 00:00:00.01
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不过现在可以了, 是用存储过程做的,第三种方法是看情况用的,我自已是不行,解决方法是只要把第三种方法改一下
加个{}
StrSql="{Call sp_News(1,0,'"&Subject&"','"&Content&"')"
objConn.execute StrSql
这样还可以插入超过4000个字符的数据
如果还是不行,加我QQ:5689168,我们继续讨论!
我用Jbuilder+weblogic+oracle9i
不到4000就报错了.
没有错误信息。执行后一直在处理没有反映!to zhonggan:
我加了你的QQ。 我的问题其实是不报错! 同样的数据库,代码在 oralce8i下都正常!
2。用prepareStatement
是的一样的,我直接导的。to yyri(行云)
没有特殊字符。