请问存储过程中需要用到很长的变量来存储信息怎么办?

时间:2021-08-07 19:53:30
存储过程可以申明的varchar最大只有8000
但我需要有text型这么大的类型怎么办》》??
有什么方法可以解决吗?

10 个解决方案

#1


what kind of operations are you doing? 

if you know the size beforehand and it is not very large, try to use several variables of varchar(8000), otherwise, consider to create a temporary table with a column of text data type and use ReadText/WriteText/UpdateText

#2


五星上将!:O

#3


可以,方法1.是saucer的,考虑用text来处理.

方法2.是我的,用多个变量来处理.

可以参考:
http://expert.csdn.net/Expert/topic/2303/2303308.xml?temp=.3962366
化解字符串不能超过8000的方法

#4


你可以说出你的具体情况.

#5


DECLARE @TempStr varchar(8000)
DECLARE @TempStr1 varchar(8000)

EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @XMLHTTP OUT --创建Microsoft.XMLHTTP对象

………………
EXEC @hr =sp_OAMethod @XMLHTTP, 'responseBody',@TempStr+@TempStr1 OUT
这里@TempStr 是二进制数据。

系统提示@TempStr+@TempStr1 出错,那怎么办?



#6


如果不@TempStr+@TempStr1 
提示错误为“为该字符串或二进制列或参数所指定的源数据太长。”

#7


--这里不能这样用,只能用一个变量.试试改为存储过程.

create proc p_test
@str text output
as
..........
EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @XMLHTTP OUT --创建Microsoft.XMLHTTP对象

………………
EXEC @hr =sp_OAMethod @XMLHTTP, 'responseBody',@str OUT

#8


hao 

 THX

#9


agree with saucer

存在表的记录里,一行一条记录

#10


不好意思,我很久没有写存储过程了!
还问个
Exec p_test为何错误呢?
--Exec p_test(?)也错误呢?

#1


what kind of operations are you doing? 

if you know the size beforehand and it is not very large, try to use several variables of varchar(8000), otherwise, consider to create a temporary table with a column of text data type and use ReadText/WriteText/UpdateText

#2


五星上将!:O

#3


可以,方法1.是saucer的,考虑用text来处理.

方法2.是我的,用多个变量来处理.

可以参考:
http://expert.csdn.net/Expert/topic/2303/2303308.xml?temp=.3962366
化解字符串不能超过8000的方法

#4


你可以说出你的具体情况.

#5


DECLARE @TempStr varchar(8000)
DECLARE @TempStr1 varchar(8000)

EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @XMLHTTP OUT --创建Microsoft.XMLHTTP对象

………………
EXEC @hr =sp_OAMethod @XMLHTTP, 'responseBody',@TempStr+@TempStr1 OUT
这里@TempStr 是二进制数据。

系统提示@TempStr+@TempStr1 出错,那怎么办?



#6


如果不@TempStr+@TempStr1 
提示错误为“为该字符串或二进制列或参数所指定的源数据太长。”

#7


--这里不能这样用,只能用一个变量.试试改为存储过程.

create proc p_test
@str text output
as
..........
EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @XMLHTTP OUT --创建Microsoft.XMLHTTP对象

………………
EXEC @hr =sp_OAMethod @XMLHTTP, 'responseBody',@str OUT

#8


hao 

 THX

#9


agree with saucer

存在表的记录里,一行一条记录

#10


不好意思,我很久没有写存储过程了!
还问个
Exec p_test为何错误呢?
--Exec p_test(?)也错误呢?