powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_executesql не хватает nvarchar(max)
11 сообщений из 11, страница 1 из 1
sp_executesql не хватает nvarchar(max)
    #40056320
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6220.0 (Intel X86) Mar 19 2015 13:34:46 Copyright (c) Microsoft Corporation Enterprise Edition on Windows NT 5.2 <X86> (Build : ) (Hypervisor)

Пытаюсь собрать строку для выполнения в sp_executesql, тип объявил nvarchar(max), строка больше 4000 символов
что блин можно в этом случае сделать???
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056321
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Гб не хватает?...
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056323
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

Да, тоже приходилось разбивать на блоки на 4000 символов.
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056328
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

4000 символов - 2ГБ? если так то не хватает
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056330
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,
дай пример пожалуйста, только именно для sys.sp_executesql
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056331
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Гавриленко Сергей Алексеевич,

4000 символов - 2ГБ? если так то не хватает

https://docs.microsoft.com/ru-ru/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql?view=sql-server-ver15[ @stmt= ] statement
Is a Unicode string that contains a Transact-SQL statement or batch. @stmt must be either a Unicode constant or a Unicode variable. ... On 64-bit servers, the size of the string is limited to 2 GB, the maximum size of nvarchar(max).
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056338
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @SQL nvarchar(max) = N''
	       ,@Params nvarchar(max) = ''
	SET @Params = ' @ПоМес bit
				    ,@Точки varchar(max) 
				    ,@ВозвратНаРЦ int
				    ,@ТипД int'

	SET @SQL = N'
	SELECT res.ExtID_Ресурс, res.Код_Товар ,res.[Наименование товара]
		  ,SAP_Имя1_5 as SAP_Имя5
		  ,ISNULL(res.КластерВыручка,6) as КластерВыручка
		  ,ISNULL(res.КластерЦена,6) as ЦУ
		  ,res.Категория


...
Код: sql
1.
2.
3.
4.
5.
exec sys.sp_executesql @SQL, @params
						  ,@ПоМес
						  ,@Точки
						  ,@ВозвратНаРЦ
						  ,@ТипД



тут я получаю ограничение на количество символов - 4000, можно это обойти?
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056346
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

прошу прощения, скорее всего тут сработало ограничение на print @SQL так как если вывести строку через select у меня запрос помещается полностью в строку
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056350
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Код: sql
1.
exec sys.sp_executesql @SQL, @params



В таком виде все будет работать (см пример в спойлере)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
declare @SQL nvarchar(max) = N''
	       ,@Params nvarchar(max) = ''
	SET @Params = ' @id int'
	SET @SQL = N'
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов
--а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов а тут длинный комментарий больше 4к символов


SELECT @id
'


select Len(@SQL)


exec sys.sp_executesql @SQL, @params, 5


Проблема у вас в коде, который заменяет
Код: sql
1.
SET @SQL = ...
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056366
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,
нет, уже все ок, работает
я выводил текст через print для проверки, а он уже обрезал
...
Рейтинг: 0 / 0
sp_executesql не хватает nvarchar(max)
    #40056368
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверять длину строки надо через len / datalength
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_executesql не хватает nvarchar(max)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]