2010-10-31 43 views
0

解析使用SQL执行字符串text数据

在SQL 2000工作TEXT数据类型,我想执行以下

Select @String = SUBSTRING(@String, @idx + DATALENGTH(@firstDelimiter)/ 2,LEN(@String)) 

注:@String是一种文本,@FirstDelimiter是键入Varchar(4)。

为什么我无法运行上面的代码?我如何执行上述操作?

是上述相当于下面这样

SET @String = RIGHT(@String, LEN(@String) - (@FoundIndex + DATALENGTH(@FirstDelimeter)/2)) 
+0

你意识到@firstDelimiter或DATALENGTH of会在@String中给你一个位置吗?在分割之前@firstDelimiter是VARCHAR(4)时,最多的结果将是4 ... – 2010-10-31 19:07:39

+0

你能描述一下你想要做什么吗?当然,SUBSTRING总是会返回varchar(最多8000),所以如果> 8000,LEN(@String)是没有意义的。 – gbn 2010-10-31 19:18:42

+0

我在这里试图运行一个SUBSTRING例程,为它提供TEXT来返回TEXT。如果我无法为此使用SUBSTRING,还有什么其他方法可以实现? – Kobojunkie 2010-10-31 20:00:41

回答

1

SQL Server 2000的TEXT数据类型不支持常用的字符串处理函数。这只是在SQL Server的后续版本中切换到VARCHAR(MAX)的许多原因之一 - 该类型将支持所有常用字符串函数。

不幸的是,对于SQL Server 2000,你会遇到TEXT数据类型,如果你使用这种数据类型,你只能使用它非常有限的一组字符串函数 - 请参阅关于MSDN here的文档。

正如你所看到的,SUBSTRING功能的支持 - 但该MSDN docs也明确指出串的返回类型是VARCHAR类型 - 不是一个TEXT

SQL Server 2000的数据类型的字符串操作是一个令人讨厌的噩梦 - 如果您有任何机会,请升级到2005或更高版本并使用VARCHAR(MAX)而不是 - 您将省去很多悲伤和浪费时间。 ...