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

Откуда:
Сообщений: 441
Добрый день!
Первый раз сталкиваюсь с таким.
Усть ф-ция fn_GetMainEmp, которая формирует из полей таблицы XML, а потом XML преобразует в varchar.
Если fn_GetMainEmp вызывать просто в запросе
DECLARE @emp VARCHAR(30)= 'AA'
 ,@dfObHist_dfOb_uid INT = 49232
    
SELECT  dbo.fn_GetMainEmp(@Emp, @dfObHist_dfOb_uid, 0)


То получаем Рис 1
Если Выполнить EXEC xxx1
То получаем Рис 2


CREATE PROCEDURE xxx1
AS 
  DECLARE @emp VARCHAR(30)= 'AA'
   ,@dfObHist_dfOb_uid INT = 49232
    
  SELECT  dbo.fn_GetMainEmp(@Emp, @dfObHist_dfOb_uid, 0)
    
GO
EXEC xxx1
GO


К сообщению приложен файл. Размер - 6Kb
10 июн 16, 09:44    [19279045]     Ответить | Цитировать Сообщить модератору
 Re: Разные результаты при вызове одной и той же ф-ции  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
Вероятно, внутри функции отсутствует сортировка, потому результат и недетерминированный.
10 июн 16, 09:57    [19279095]     Ответить | Цитировать Сообщить модератору
 Re: Разные результаты при вызове одной и той же ф-ции  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Oleg6619, покажите DDL Вашей функции при возможности.
10 июн 16, 10:00    [19279108]     Ответить | Цитировать Сообщить модератору
 Re: Разные результаты при вызове одной и той же ф-ции  [new]
iljy
Member

Откуда:
Сообщений: 8711
Oleg6619,

у вас выдача не соответствует запросу, скалярная функция не может возвращать несколько полей. Покажите код функции, а также версию сервера.
10 июн 16, 10:03    [19279122]     Ответить | Цитировать Сообщить модератору
 Re: Разные результаты при вызове одной и той же ф-ции  [new]
Oleg6619
Member

Откуда:
Сообщений: 441
К сожалению показать текст не получится: там длинный рекурсивный вызов ф-ций. Пытался упростить, то тогда всё в порядке.
Наверно что-то со стеком - слишком много вложений (но ошибки не возникает).

Всем спасибо.
10 июн 16, 10:37    [19279295]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить