首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于text字段操作的有关问题,

2012-01-11 
关于text字段操作的问题,高分求教!写一个存储过程,定义了一个OUTPUT参数@temp,为text类型现在存储过程里想

关于text字段操作的问题,高分求教!
写一个存储过程,定义了一个OUTPUT参数@temp,为text类型
现在存储过程里想写循环把一些varchar字段累加到@temp
形如@temp=@temp+ 'abcd '
但是报错,即使
@temp=@temp+convert(text, 'abcd ')
也不行,请问该怎么写呢?

[解决办法]
不能定义变量为text 或ntext类型.改为varchar(8000)
[解决办法]
CREATE PROCEDURE Ptest_text
@ftext text
AS
EXEC sp_dboption 'hdns_test ', 'select into/bulkcopy ', 'true '
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(ftext) FROM test_text WHERE finterid = 1
WRITETEXT test_text.ftext @ptrval @ftext
EXEC sp_dboption 'hdns_test ', 'select into/bulkcopy ', 'false '

程序中执行代码如下:

With Comm
.Parameters.Append .CreateParameter( "sstr ", adChar, adParamInput, 8000) '输入信息
.Parameters( "sstr ").Value = String$(8000, "a ")
.CommandText = "ptest_text "
.ActiveConnection = CONN
.CommandType = adCmdStoredProc
Set Rs = .Execute
End With
MsgBox "finish "
[解决办法]
但是如果varchar8000不够呢?
==========> 可以多建几个变量,然后一一输出,楼主如果是用sql2005,则长度不受8000限制了.
[解决办法]
SQLSERVER规定变量不能是 text、ntext 或 image 数据类型.
存储过程多设计几个冗余的varchar(8000)类型参数,在存储过程中对连接的字符串长度进行判断,如果长度差不多8000了就保存到其它参数中.应用程序端对输出参数进行判断是否为空,把不为空的参数值再串联起来.
[解决办法]
关注
[解决办法]
http://www.cnblogs.com/yangxiao24/archive/2007/05/24/758295.html

热点排行
Bad Request.