当前位置: 代码迷 >> Sql Server >> 关于text字段操作的有关问题,
  详细解决方案

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

热度:67   发布时间:2016-04-27 16:27:06.0
关于text字段操作的问题,高分求教!
写一个存储过程,[email protected],为text类型
[email protected]temp
[email protected][email protected]+ 'abcd '
但是报错,即使
@[email protected]+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
  相关解决方案