Выполнение анализа строк с помощью TEXT DataType - PullRequest
0 голосов
/ 31 октября 2010

Использование типа данных TEXT в SQL

Работая на SQL 2000, я бы хотел выполнить следующее

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

ПРИМЕЧАНИЕ. @String - это тип TEXT, @FirstDelimiter - это тип Varchar (4).

Почему я не могу запустить приведенный выше код? Как мне выполнить вышеупомянутое вместо?

Вышеуказанный эквивалент этому ниже

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

1 Ответ

1 голос
/ 01 ноября 2010

Тип данных SQL Server 2000 TEXT поддерживает , а не , поддерживает обычные функции работы со строками.Это только одна из многих причин, по которым в более поздней версии SQL Server вам следует переключиться на VARCHAR(MAX) - этот тип будет поддерживать все обычные строковые функции.

К сожалению, с SQL Server 2000 вызастрял с типом данных TEXT, и если вы используете этот тип данных, вы застряли с его очень ограниченным набором строковых функций - см. документацию по MSDN здесь .

Как вы можете видеть, поддерживается функция SUBSTRING - но документы MSDN , которые также указывают на то, что возвращаемый тип SUBSTRING имеет тип VARCHAR, а не TEXT.

Манипулирование строками в типе данных TEXT в SQL Server 2000 - раздражающий кошмар - если у вас есть хоть какой-то шанс, обновитесь до 2005 или новее и используйте вместо этого VARCHAR(MAX) - вы сэкономитемного горя и потраченных впустую часов .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...