|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Использование в хранимой процедуре строковой переменной |
|
MSFT SQL Server - Использование в хранимой процедуре строковой переменной
|
Ветеран Сообщения: 5624 |
Профиль | Отправить PM | Цитировать Столкнулся с нерешаемой пока проблемой.
Имеется процедура такого вида: ALTER PROCEDURE [dbo].[sp_ReturnMagazineListForSearch] (@doc_ids NVARCHAR(MAX)) AS BEGIN DECLARE @str NVARCHAR(MAX) SET @str = 'SELECT distinct id, onControl, SendTo FROM View_Magazines where id in (' + cast(@doc_ids as char) + ')' EXEC sp_executesql @str END Пример готовой строки: 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.). Вопрос - как обойти это ограничение? |
|
------- Отправлено: 02:55, 16-02-2011 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать А почему не держать таблицу айдишек в таблице?!
|
Отправлено: 13:10, 17-02-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Busla, этот запрос формируется динамически, поэтому только так.
Проблема решена, надо было убрать лишнее преобразование cast(@doc_ids as char), т.к. @doc_ids уже и так строковая. В итоге формируется строка типа nvarchar(MAX) длиной, ограниченной только памятью компьютера. |
------- Отправлено: 00:53, 18-02-2011 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. | NiOl | Скриптовые языки администрирования Windows | 7 | 31-01-2019 19:58 | |
MSFT SQL Server - Какие символы нельзя использовать в имени хранимой процедуры? | Cognolio | Программирование и базы данных | 3 | 09-07-2009 01:59 | |
C/C++ - [решено] строковой парсинг | Surround | Программирование и базы данных | 2 | 17-03-2008 16:51 | |
php деление значения строковой переменной | Guest | Вебмастеру | 4 | 14-10-2004 17:12 | |
Как в Linux из C++ обратится к Fortran'овской процедуре? | Zar | Программирование и базы данных | 3 | 03-09-2004 21:51 |
|