Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 JSON. Обрезаются данные. Как исправить?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Есть стандартный запрос к табличке и указание FOR JSON PATH, ROOT('Projects')
Получается датасэт из одного столбца и порядка 300 строк.

Но если я этот датасэт пытаюсь запихнуть в переменную либо делаю так:
select (select ... for json ...) as MyJson


то данные в этой итоговой строке очень сильно обрезаются и выводятся не все.
Как быть?
11 янв 18, 14:09    [21097211]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Перестать проверять содержимое json студией, а начать использовать datalength() к примеру.
11 янв 18, 14:15    [21097250]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Гавриленко Сергей Алексеевич, суть проблемы от этого не поменяется.
Данные обрезаются и всё тут!
11 янв 18, 14:21    [21097294]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Santa89
Гавриленко Сергей Алексеевич, суть проблемы от этого не поменяется.
Данные обрезаются и всё тут!
Не верю. Код давайте, репро давайте.

Сообщение было отредактировано: 11 янв 18, 14:22
11 янв 18, 14:22    [21097302]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Это только у евреев
Santa89
обрезаются и всё тут!

Santa89
суть проблемы
в том, что ничего
Santa89
не поменяется
если не делать того, что просят сделать опытные коллеги.
11 янв 18, 14:33    [21097421]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
Вопрос закрыт, видимо в буфер обмена не умещается вся информация.
Я ведь проверял как - получил строку данных через "select (select ... for json ...) as MyJson" скопировал её в буфер обмена и вставил в Блокнот.
Вижу данные не все, а вот если импортить это строку данных прямо в текстовый файл - то в нём всё нормально!
11 янв 18, 14:40    [21097492]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Santa89
видимо в буфер обмена не умещается вся информация

:facepalm:
11 янв 18, 14:52    [21097635]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
iiyama
Member

Откуда:
Сообщений: 642
Santa89,
Расширьте возможности своего буфера обмена :)

К сообщению приложен файл. Размер - 21Kb
11 янв 18, 15:26    [21097867]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
iiyama, спасибо, незнал!
Это более информативно чем фейспалм! ))
11 янв 18, 15:33    [21097925]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1239
у меня схожая пробелма
что возвращаюсят НЕполные тексты СП и вьюих :

SELECT * FROM INFORMATION_SCHEMA.VIEWS v where v.TABLE_NAME

Я попытался увеличить 65535 for non XML data
надеясь что поможет возвращать полные метаданные.

не работатет -возвращает значение 65535 назад
11 янв 18, 15:54    [21098055]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Гулин Федор,

VIEW_DEFINITION nvarchar(4000)
11 янв 18, 15:56    [21098074]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
Для этого в студии приделано скриптование объектов.
11 янв 18, 15:57    [21098081]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Santa89
Member

Откуда:
Сообщений: 1477
У меня тоже 65535 возвращает назад, не даёт менять
11 янв 18, 17:44    [21098583]     Ответить | Цитировать Сообщить модератору
 Re: JSON. Обрезаются данные. Как исправить?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
автор
У меня тоже 65535 возвращает назад, не даёт менять

И не даст. Но если очень нужно, есть грязный хак.
+ Просьба убрать от монитора кошек, детей, беременных и кормящих женщин, и прочих психически неустойчивых личностей
CREATE FUNCTION [zr].[sb_split_too_long_strings] (
  @string NVARCHAR(MAX),
  @step INT = 65535
)
RETURNS @res TABLE ( [rn] INT IDENTITY(1,1), [text] NVARCHAR(MAX) )
AS
BEGIN
  DECLARE @len INT = LEN( @string )
  DECLARE @pos INT = 0
  WHILE @pos < @len
  BEGIN
    INSERT
    INTO
      @res
    VALUES
      ( SUBSTRING( @string, @pos, @step ) )
    ;
    SET @pos += @step
    ;
  END
  ;
  RETURN
END
GO
SELECT
  ss.[rn], ss.[text]
FROM (
  SELECT TOP 1 [definition] FROM sys.sql_modules WHERE LEN( [definition] ) > 65535
  ) t
  CROSS APPLY [zr].[sb_split_too_long_strings]( t.[definition], DEFAULT ) ss
ORDER BY
  1
;
11 янв 18, 18:27    [21098705]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить