Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
9IKOB
Member

Откуда: Тамбов
Сообщений: 249
Всем доброго времени суток!

При выполнении хранимой процедуры (сервер - MS SQL Server 2012) постоянно вылетает ошибка "Слишком глубокая вложенность предложений DO или выражения".
Какие могут быть причины её возникновения?
15 ноя 16, 15:25    [19896442]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Это не ошибка сервера.
15 ноя 16, 15:27    [19896463]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
[quot 9IKOB]При выполнении хранимой процедуры (сервер - MS SQL Server 2012) постоянно вылетает ошибка "Слишком глубокая вложенность предложений DO или выражения".[quot]
Слишком много CASE в последовательных CROSS APPLY?
Слишком сложное CTE?

Текст запроса и текст ошибки помогут ответить на вопрос, что может вызывать.
15 ноя 16, 15:31    [19896485]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 119
Руслан Дамирович, если загуглить текст ошибки, то вываливаются результаты, ссылающиеся на продукты корпорации Парус. Это не ошибка SQL Server'а.
15 ноя 16, 15:58    [19896617]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
9IKOB
Member

Откуда: Тамбов
Сообщений: 249
Sybex
Руслан Дамирович, если загуглить текст ошибки, то вываливаются результаты, ссылающиеся на продукты корпорации Парус. Это не ошибка SQL Server'а.


Ошибка возникает при выполнении хранимой процедуры из exe-шника, написанного на FoxPro 9.
15 ноя 16, 16:03    [19896657]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
9IKOB
Sybex
Руслан Дамирович, если загуглить текст ошибки, то вываливаются результаты, ссылающиеся на продукты корпорации Парус. Это не ошибка SQL Server'а.


Ошибка возникает при выполнении хранимой процедуры из exe-шника, написанного на FoxPro 9.

какой момент в фразе "Это не ошибка сервера." не ясен? в exe я могу хоть попугаем вас обзывать и это не будет связано с сервером
15 ноя 16, 16:05    [19896673]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
9IKOB
Member

Откуда: Тамбов
Сообщений: 249
TaPaK,

Теперь понятно. Буду писать на форум FoxPro.
15 ноя 16, 16:11    [19896713]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 119
9IKOB, включайте профайлер и смотрите с какими параметрами вызывается процедура. Потом пробуйте её выполнить через Managment Studio и если будут ошибки, то спрашивайте с приведением этих ошибок. А если ошибок нет, то вам прямой путь к разработчику этого
9IKOB
exe-шника, написанного на FoxPro 9.
15 ноя 16, 16:11    [19896714]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
9IKOB
Member

Откуда: Тамбов
Сообщений: 249
Sybex,

Благодарю за совет. Здесь только проблемка в том, что ХП выполняется несколько часов.
15 ноя 16, 16:37    [19896870]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
o-o
Guest
Руслан Дамирович
Слишком много CASE в последовательных CROSS APPLY?
Слишком сложное CTE?
Текст запроса и текст ошибки помогут ответить на вопрос, что может вызывать.

дат вот текст-то и намекает:
автор
"Слишком глубокая вложенность предложений DO или выражения"

что в T-SQL никакого DO нет.
ни вложенного, ни разложенного
15 ноя 16, 16:48    [19896929]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Руслан Дамирович
автор
Слишком много CASE в последовательных CROSS APPLY?

а как это, кстати
15 ноя 16, 16:54    [19896976]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
o-o
Guest
TaPaK
Руслан Дамирович
автор
Слишком много CASE в последовательных CROSS APPLY?

а как это, кстати

do case while cross apply
15 ноя 16, 16:55    [19896983]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
o-o
do case while cross apply

Посмеялсо!

TaPaK
а как это, кстати

А вот так
+

CREATE TABLE #temp (
  [v1] INT,
  [v2] INT,
  [v3] INT,
  [v4] INT,
  [v5] INT,
  [v6] INT,
  [v7] INT,
  [v8] INT,
  [v9] INT )
;
INSERT INTO #temp
VALUES (
  1,
  2,
  3,
  1,
  2,
  3,
  1,
  2,
  3 )
;
SELECT
  t10.*,
  ss.[res]
FROM
  ( SELECT [v0] = 0 ) t0
  CROSS APPLY ( 
    SELECT
      *
    FROM
      #temp
  ) t1
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t1.[v1] < t0.[v0] THEN t1.[v1] ELSE t0.[v0] END,
      [v2] = CASE WHEN t1.[v2] < t0.[v0] THEN t1.[v2] ELSE t0.[v0] END,
      [v3] = CASE WHEN t1.[v3] < t0.[v0] THEN t1.[v3] ELSE t0.[v0] END,
      [v4] = CASE WHEN t1.[v4] < t0.[v0] THEN t1.[v4] ELSE t0.[v0] END,
      [v5] = CASE WHEN t1.[v5] < t0.[v0] THEN t1.[v5] ELSE t0.[v0] END,
      [v6] = CASE WHEN t1.[v6] < t0.[v0] THEN t1.[v6] ELSE t0.[v0] END,
      [v7] = CASE WHEN t1.[v7] < t0.[v0] THEN t1.[v7] ELSE t0.[v0] END,
      [v8] = CASE WHEN t1.[v8] < t0.[v0] THEN t1.[v8] ELSE t0.[v0] END,
      [v9] = CASE WHEN t1.[v9] < t0.[v0] THEN t1.[v9] ELSE t0.[v0] END
  ) t2
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t2.[v1] < t1.[v1] THEN t2.[v1] ELSE t1.[v1] END,
      [v2] = CASE WHEN t2.[v2] < t1.[v2] THEN t2.[v2] ELSE t1.[v2] END,
      [v3] = CASE WHEN t2.[v3] < t1.[v3] THEN t2.[v3] ELSE t1.[v3] END,
      [v4] = CASE WHEN t2.[v4] < t1.[v4] THEN t2.[v4] ELSE t1.[v4] END,
      [v5] = CASE WHEN t2.[v5] < t1.[v5] THEN t2.[v5] ELSE t1.[v5] END,
      [v6] = CASE WHEN t2.[v6] < t1.[v6] THEN t2.[v6] ELSE t1.[v6] END,
      [v7] = CASE WHEN t2.[v7] < t1.[v7] THEN t2.[v7] ELSE t1.[v7] END,
      [v8] = CASE WHEN t2.[v8] < t1.[v8] THEN t2.[v8] ELSE t1.[v8] END,
      [v9] = CASE WHEN t2.[v9] < t1.[v9] THEN t2.[v9] ELSE t1.[v9] END
  ) t3
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t3.[v1] < t2.[v1] THEN t3.[v1] ELSE t2.[v1] END,
      [v2] = CASE WHEN t3.[v2] < t2.[v2] THEN t3.[v2] ELSE t2.[v2] END,
      [v3] = CASE WHEN t3.[v3] < t2.[v3] THEN t3.[v3] ELSE t2.[v3] END,
      [v4] = CASE WHEN t3.[v4] < t2.[v4] THEN t3.[v4] ELSE t2.[v4] END,
      [v5] = CASE WHEN t3.[v5] < t2.[v5] THEN t3.[v5] ELSE t2.[v5] END,
      [v6] = CASE WHEN t3.[v6] < t2.[v6] THEN t3.[v6] ELSE t2.[v6] END,
      [v7] = CASE WHEN t3.[v7] < t2.[v7] THEN t3.[v7] ELSE t2.[v7] END,
      [v8] = CASE WHEN t3.[v8] < t2.[v8] THEN t3.[v8] ELSE t2.[v8] END,
      [v9] = CASE WHEN t3.[v9] < t2.[v9] THEN t3.[v9] ELSE t2.[v9] END
  ) t4
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t4.[v1] < t3.[v1] THEN t4.[v1] ELSE t3.[v1] END,
      [v2] = CASE WHEN t4.[v2] < t3.[v2] THEN t4.[v2] ELSE t3.[v2] END,
      [v3] = CASE WHEN t4.[v3] < t3.[v3] THEN t4.[v3] ELSE t3.[v3] END,
      [v4] = CASE WHEN t4.[v4] < t3.[v4] THEN t4.[v4] ELSE t3.[v4] END,
      [v5] = CASE WHEN t4.[v5] < t3.[v5] THEN t4.[v5] ELSE t3.[v5] END,
      [v6] = CASE WHEN t4.[v6] < t3.[v6] THEN t4.[v6] ELSE t3.[v6] END,
      [v7] = CASE WHEN t4.[v7] < t3.[v7] THEN t4.[v7] ELSE t3.[v7] END,
      [v8] = CASE WHEN t4.[v8] < t3.[v8] THEN t4.[v8] ELSE t3.[v8] END,
      [v9] = CASE WHEN t4.[v9] < t3.[v9] THEN t4.[v9] ELSE t3.[v9] END
  ) t5
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t5.[v1] < t4.[v1] THEN t5.[v1] ELSE t4.[v1] END,
      [v2] = CASE WHEN t5.[v2] < t4.[v2] THEN t5.[v2] ELSE t4.[v2] END,
      [v3] = CASE WHEN t5.[v3] < t4.[v3] THEN t5.[v3] ELSE t4.[v3] END,
      [v4] = CASE WHEN t5.[v4] < t4.[v4] THEN t5.[v4] ELSE t4.[v4] END,
      [v5] = CASE WHEN t5.[v5] < t4.[v5] THEN t5.[v5] ELSE t4.[v5] END,
      [v6] = CASE WHEN t5.[v6] < t4.[v6] THEN t5.[v6] ELSE t4.[v6] END,
      [v7] = CASE WHEN t5.[v7] < t4.[v7] THEN t5.[v7] ELSE t4.[v7] END,
      [v8] = CASE WHEN t5.[v8] < t4.[v8] THEN t5.[v8] ELSE t4.[v8] END,
      [v9] = CASE WHEN t5.[v9] < t4.[v9] THEN t5.[v9] ELSE t4.[v9] END
  ) t6
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t6.[v1] < t5.[v1] THEN t6.[v1] ELSE t5.[v1] END,
      [v2] = CASE WHEN t6.[v2] < t5.[v2] THEN t6.[v2] ELSE t5.[v2] END,
      [v3] = CASE WHEN t6.[v3] < t5.[v3] THEN t6.[v3] ELSE t5.[v3] END,
      [v4] = CASE WHEN t6.[v4] < t5.[v4] THEN t6.[v4] ELSE t5.[v4] END,
      [v5] = CASE WHEN t6.[v5] < t5.[v5] THEN t6.[v5] ELSE t5.[v5] END,
      [v6] = CASE WHEN t6.[v6] < t5.[v6] THEN t6.[v6] ELSE t5.[v6] END,
      [v7] = CASE WHEN t6.[v7] < t5.[v7] THEN t6.[v7] ELSE t5.[v7] END,
      [v8] = CASE WHEN t6.[v8] < t5.[v8] THEN t6.[v8] ELSE t5.[v8] END,
      [v9] = CASE WHEN t6.[v9] < t5.[v9] THEN t6.[v9] ELSE t5.[v9] END
  ) t7
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t7.[v1] < t6.[v1] THEN t7.[v1] ELSE t6.[v1] END,
      [v2] = CASE WHEN t7.[v2] < t6.[v2] THEN t7.[v2] ELSE t6.[v2] END,
      [v3] = CASE WHEN t7.[v3] < t6.[v3] THEN t7.[v3] ELSE t6.[v3] END,
      [v4] = CASE WHEN t7.[v4] < t6.[v4] THEN t7.[v4] ELSE t6.[v4] END,
      [v5] = CASE WHEN t7.[v5] < t6.[v5] THEN t7.[v5] ELSE t6.[v5] END,
      [v6] = CASE WHEN t7.[v6] < t6.[v6] THEN t7.[v6] ELSE t6.[v6] END,
      [v7] = CASE WHEN t7.[v7] < t6.[v7] THEN t7.[v7] ELSE t6.[v7] END,
      [v8] = CASE WHEN t7.[v8] < t6.[v8] THEN t7.[v8] ELSE t6.[v8] END,
      [v9] = CASE WHEN t7.[v9] < t6.[v9] THEN t7.[v9] ELSE t6.[v9] END
  ) t8
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t8.[v1] < t7.[v1] THEN t8.[v1] ELSE t7.[v1] END,
      [v2] = CASE WHEN t8.[v2] < t7.[v2] THEN t8.[v2] ELSE t7.[v2] END,
      [v3] = CASE WHEN t8.[v3] < t7.[v3] THEN t8.[v3] ELSE t7.[v3] END,
      [v4] = CASE WHEN t8.[v4] < t7.[v4] THEN t8.[v4] ELSE t7.[v4] END,
      [v5] = CASE WHEN t8.[v5] < t7.[v5] THEN t8.[v5] ELSE t7.[v5] END,
      [v6] = CASE WHEN t8.[v6] < t7.[v6] THEN t8.[v6] ELSE t7.[v6] END,
      [v7] = CASE WHEN t8.[v7] < t7.[v7] THEN t8.[v7] ELSE t7.[v7] END,
      [v8] = CASE WHEN t8.[v8] < t7.[v8] THEN t8.[v8] ELSE t7.[v8] END,
      [v9] = CASE WHEN t8.[v9] < t7.[v9] THEN t8.[v9] ELSE t7.[v9] END
  ) t9
  CROSS APPLY (
    SELECT
      [v1] = CASE WHEN t9.[v1] < t8.[v1] THEN t9.[v1] ELSE t8.[v1] END,
      [v2] = CASE WHEN t9.[v2] < t8.[v2] THEN t9.[v2] ELSE t8.[v2] END,
      [v3] = CASE WHEN t9.[v3] < t8.[v3] THEN t9.[v3] ELSE t8.[v3] END,
      [v4] = CASE WHEN t9.[v4] < t8.[v4] THEN t9.[v4] ELSE t8.[v4] END,
      [v5] = CASE WHEN t9.[v5] < t8.[v5] THEN t9.[v5] ELSE t8.[v5] END,
      [v6] = CASE WHEN t9.[v6] < t8.[v6] THEN t9.[v6] ELSE t8.[v6] END,
      [v7] = CASE WHEN t9.[v7] < t8.[v7] THEN t9.[v7] ELSE t8.[v7] END,
      [v8] = CASE WHEN t9.[v8] < t8.[v8] THEN t9.[v8] ELSE t8.[v8] END,
      [v9] = CASE WHEN t9.[v9] < t8.[v9] THEN t9.[v9] ELSE t8.[v9] END
  ) t10
  CROSS APPLY (
    SELECT 
      [res] = MIN( u.[n] )
    FROM
      ( SELECT t6.* ) p
      UNPIVOT( [n] FOR [v] IN ( p.[v1], p.[v2], p.[v3], p.[v4], p.[v5], p.[v6], p.[v7], p.[v8], p.[v9] ) ) u
  ) ss

15 ноя 16, 18:05    [19897282]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
Пример синтетический, но реальный запрос был еще хуже.
Пришлось делить на последовательные запросы.
15 ноя 16, 18:08    [19897292]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Руслан Дамирович,

И какое отношение ваш скрипт имеет к левому сообщению автора "Слишком глубокая вложенность предложений DO или выражения"?

Сообщение было отредактировано: 15 ноя 16, 18:15
15 ноя 16, 18:15    [19897306]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
Гавриленко Сергей Алексеевич
Руслан Дамирович,
И какое отношение ваш скрипт имеет к левому сообщению автора?

Мой скрипт имеет отношение к вопросу, на который он отвечает.
А с вопросом автора уже разобрались.
15 ноя 16, 18:32    [19897337]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка "Слишком глубокая вложенность предложений DO или выражения"  [new]
9IKOB
Member

Откуда: Тамбов
Сообщений: 249
Sybex
9IKOB, включайте профайлер и смотрите с какими параметрами вызывается процедура. Потом пробуйте её выполнить через Managment Studio и если будут ошибки, то спрашивайте с приведением этих ошибок. А если ошибок нет, то вам прямой путь к разработчику этого
9IKOB
exe-шника, написанного на FoxPro 9.


Благодарю за совет. Выполнил код хранимой процедуры в Management Studio - вывалилось несколько ошибок. После их исправления проблема решилась.
18 ноя 16, 08:02    [19906182]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить