Использование в хранимой процедуре строковой переменной
Столкнулся с нерешаемой пока проблемой.
Имеется процедура такого вида: Код:
ALTER PROCEDURE [dbo].[sp_ReturnMagazineListForSearch] (@doc_ids NVARCHAR(MAX)) Пример готовой строки: Код:
SELECT distinct id, onControl, SendTo FROM View_Magazines where id in (69,72,74,79,81,82,87,89,90,95,97,98,103,105,106,111,113,114,119,121,122,127) В базе 28000 тестовых записей, у них у всех номер, к примеру, равен 25. При формировании поиска по номеру возвращается готовая строка, длина которой более 33 000 символов. NVARCHAR(MAX) - всего 8000 символов. Использовать TEXT, NTEXT в процедуре не разрешается (The text, ntext, and image data types are invalid for local variables.). Вопрос - как обойти это ограничение? |
А почему не держать таблицу айдишек в таблице?!
|
Busla, этот запрос формируется динамически, поэтому только так.
Проблема решена, надо было убрать лишнее преобразование cast(@doc_ids as char), т.к. @doc_ids уже и так строковая. В итоге формируется строка типа nvarchar(MAX) длиной, ограниченной только памятью компьютера. |
Время: 20:35. |
Время: 20:35.
© OSzone.net 2001-