sp4 下的sqlserver ,字段 ntext 类型不能存长度大于 3000 的字符串吗?

时间:2021-11-14 04:41:16
sp4 下的sqlserver ,字段 ntext 类型不能存长度大于 3000 的字符串吗?

PreparedStatement ps = connection.prepareStatement(sql);

String ssssssssssssssssssss = "";
for(int i=0; i<3000; i++) {
ssssssssssssssssssss += "a";
}

ps.setString(1,ssssssssssssssssssss);

ps.executeUpdate();

上面出错说:[Microsoft][SQLServer 2000 Driver for JDBC]The DBMS returned an unspecified error.

----------------------------------------

但将上面的 3000 改成 300,则上面的执行成功!

----------------------------------------

现在是要存任意长度的字符串,ntext不是说可以存甚至1G的吗?


----------------------------------------

说一下的是,我的SQLServer 2000 是装了 sp4 for sqlserver 2000 的补丁的,在没装 sp4 之前,好像无论 3000 还是更大,都成功,

因为执行的程序是一样的,是 sp4 的原因吗?还是其他的原因?

5 个解决方案

#1


jdbc驱动的问题,你看看数据库pubs的表pub_info中的存储数据长度

#2


pub_info没什么可看的啊!?

#3


有什么办法解决吗?

(不能固定任何字段的长度如8000等,因为字符串是可变的)

#4


用text类型

#5



用 text 一样,

更离谱的是,现在把该字段类型改成 varchar(8000) ,居然也一样出错,

好像现在不是用什么类型出错一样,

是不是行的存储容量太大了?

#1


jdbc驱动的问题,你看看数据库pubs的表pub_info中的存储数据长度

#2


pub_info没什么可看的啊!?

#3


有什么办法解决吗?

(不能固定任何字段的长度如8000等,因为字符串是可变的)

#4


用text类型

#5



用 text 一样,

更离谱的是,现在把该字段类型改成 varchar(8000) ,居然也一样出错,

好像现在不是用什么类型出错一样,

是不是行的存储容量太大了?