|
Запрос вылетает с ошибкой | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
05.10.15
✎
12:18
|
День добрый.
Платформа 8.2 Собственно, ошибка следующая - запускаю в консоли пакетный запрос, на 9-м пакете он вылетает с ошибкой СУБД. Все предыдущие пакеты поочередно запустила, проверила, что выполняются. Сам 9-й состоит из соединения 3-х временных таблиц из предыдущих проверенных пакетов запросов, и одного вложенного запроса, который я отдельно запустила и так же проверила, что работает. Вместе это все выдает ошибку: Ошибка при выполнении запроса POST к ресурсу /e1cib/cmi/command/0:b768d4c7-648d-4777-b5e6-cfa6d0bb6691: по причине: Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: String or binary data would be truncated. HRESULT=80040E57, SQLSrvr: SQLSTATE=22001, state=D, Severity=10, native=8152, line=1 Подскажите, пожалуйста, с чем это может быть связано? Если кто-то сталкивался с подобной проблемой, как справлялись? |
|||
1
Fragster
гуру
05.10.15
✎
12:19
|
зеленый!
|
|||
2
vse_serjezno
05.10.15
✎
12:29
|
Я была бы рада более конструктивному ответу.
|
|||
3
Buster007
05.10.15
✎
12:30
|
String or binary data would be truncated
можно в гугле перевести |
|||
4
Steini
05.10.15
✎
12:31
|
вангую: в соединении участвуют строки или т.п.?
|
|||
5
Fragster
гуру
05.10.15
✎
12:33
|
(2) текст запроса мы должны придумать?
|
|||
6
vhl
05.10.15
✎
12:38
|
(5) 9 пакетов? Нет спасибо :)
|
|||
7
Nuobu
05.10.15
✎
12:39
|
||||
8
vse_serjezno
05.10.15
✎
12:48
|
(4) 3 соединение по ссылке номенклатуры и одно по строке, но там поле типа строка длинной не больше 36 символов.
|
|||
9
vse_serjezno
05.10.15
✎
12:49
|
На небольшом объеме данных запрос работает... О_о
|
|||
10
vse_serjezno
05.10.15
✎
12:57
|
(7) к сожалению, способ не сработал.
|
|||
11
Тoлько_
Просмотр 05.10.15
✎
13:02
|
(10) Точно? То есть строка в ВТ получается в результате ВЫРАЗИТЬ, потом индексирование по этой колонке и всё равно не работает?
|
|||
12
vse_serjezno
05.10.15
✎
13:08
|
(11) дело в том, что ошибка возникает даже если я убираю эту таблицу и связь из этого пакета запроса.
|
|||
13
vse_serjezno
05.10.15
✎
13:11
|
Условие связи:
ИЗ втДанныеПоДокументу_Предыдущие КАК ДанныеПоДокументу_Предыдущие ЛЕВОЕ СОЕДИНЕНИЕ втСтатьи КАК Статьи ПО ДанныеПоДокументу_Предыдущие.UID = Статьи.UID ЛЕВОЕ СОЕДИНЕНИЕ втНГруппы КАК НГруппы ПО ДанныеПоДокументу_Предыдущие.Номенклатура.НоменклатурнаяГруппа = НГруппы.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗапросОбъединение.НоменклатураИсключение КАК НоменклатураИсключение ИЗ (ВЫБРАТЬ Номенклатура.Ссылка КАК НоменклатураИсключение ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ИсключенияИзГрупп.НоменклатураИсключение КАК НоменклатураИсключение ИЗ РегистрСведений.ИсключенияИзГрупп КАК ИсключенияИзГрупп ГДЕ ИсключенияИзГрупп.НоменклатураИсключение.ЭтоГруппа) И Номенклатура.ПГод <> 2013 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ИсключенияИзГрупп.НоменклатураИсключение ИЗ РегистрСведений.ИсключенияИзГрупп КАК ИсключенияИзГрупп) КАК ЗапросОбъединение СГРУППИРОВАТЬ ПО ЗапросОбъединение.НоменклатураИсключение) КАК ТаблицаИсключений ПО ДанныеПоДокументу_Предыдущие.Номенклатура = ТаблицаИсключений.НоменклатураИсключение ЛЕВОЕ СОЕДИНЕНИЕ СводНГ_Реверс КАК СводНГ_Реверс ПО ДанныеПоДокументу_Предыдущие.Номенклатура = СводНГ_Реверс.Ссылка |
|||
14
Тoлько_
Просмотр 05.10.15
✎
13:16
|
(13) Ого, ну во-первых, вот так
"ПО ДанныеПоДокументу_Предыдущие.Номенклатура.НоменклатурнаяГруппа = НГруппы.Номенклатура" негоже делать. Сделай лучше отдельную колонку НоменклатурнаяГруппа, проиндексируй её и по ней соединяй. Во-вторых, вот это: (ВЫБРАТЬ ЗапросОбъединение.НоменклатураИсключение КАК НоменклатураИсключение ИЗ (ВЫБРАТЬ Номенклатура.Ссылка КАК НоменклатураИсключение ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ИсключенияИзГрупп.НоменклатураИсключение КАК НоменклатураИсключение ИЗ РегистрСведений.ИсключенияИзГрупп КАК ИсключенияИзГрупп ГДЕ ИсключенияИзГрупп.НоменклатураИсключение.ЭтоГруппа) И Номенклатура.ПГод <> 2013 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ИсключенияИзГрупп.НоменклатураИсключение ИЗ РегистрСведений.ИсключенияИзГрупп КАК ИсключенияИзГрупп) КАК ЗапросОбъединение СГРУППИРОВАТЬ ПО ЗапросОбъединение.НоменклатураИсключение) КАК ТаблицаИсключений помести сначала в отдельную временную таблицу. Дальше по результатам. |
|||
15
maximus77
05.10.15
✎
13:26
|
Проблема в том, что у вас в таблице размер поля меньше, чем данные, которые вы пытаетесь туда вставить. Не видя запроса сказать где это может быть невозможно.
|
|||
16
vse_serjezno
05.10.15
✎
14:59
|
ПРоблема возникает при помещении результата во временную таблицу... Если убрать из текста запроса
"Поместить в ВТ" и вывести результат, то результат выводится.. |
|||
17
maximus77
05.10.15
✎
15:04
|
Что такое "Поместить в ВТ" это СОЗДАНИЕ виртуальной таблицы с определенными полями на сервере SQL. Просто Select НЕ СОЗДАЕТ таблицу, а выводит данные поэтому и нет ошибки.
|
|||
18
hhhh
05.10.15
✎
15:06
|
НоменклатураИсключение какого типа?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |