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

Откуда:
Сообщений: 64
На двух компьютерах установлены SQl-сервера одной версии, сконфигурированы абсолютно одинаково.
На первом компьютере установлена Windows 7, на втором - Windows Server 2012 R2.
На том и на другом сервере выполняется удаленный запрос через linked server DWH2 к Oracle:
declare
	@p_numer varchar(max) = 'FL-89935'
exec ('select * from table(PKG_DC_LOAD.F_GET_ICREP_TAB(?))', @p_numer) at DWH2

В результате выполнения на SQL-сервере с Windows 7 указанный запрос возвращает данные, а на Windows Server 2012 R2 - нет.
При этом не выдается никаких ошибок и сообщений.
Подскажите, пожалуйста, где копать, в чем может быть проблема?
21 ноя 16, 11:48    [19915233]     Ответить | Цитировать Сообщить модератору
 Re: Удаленное выполнение табличной функции через linked server к Oracle не возвращает данные  [new]
mikka sikorsky
Member

Откуда:
Сообщений: 64
Выяснил я причину невозвращения данных.
На сервере, который возвращает данные, декларация
declare @p_numer varchar(max)

отрабатывает без проблем.
а другой сервер не понимает varchar(max), на нем мой запрос сработал при декларации
declare @p_numer varchar(1024)

Кто-нибудь знает, почему max не понимается сервером и как это устранить?
22 ноя 16, 11:10    [19919512]     Ответить | Цитировать Сообщить модератору
 Re: Удаленное выполнение табличной функции через linked server к Oracle не возвращает данные  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
mikka sikorsky,

особенности драйвера. видимо.
У самого MS 2012 в скриптах есть баг, не помню где находил. xp_cmdshell передают varchar(max), который там не воспринимается. Вылетело из головы, к сожалению, в какой ситуации.
22 ноя 16, 12:06    [19919924]     Ответить | Цитировать Сообщить модератору
 Re: Удаленное выполнение табличной функции через linked server к Oracle не возвращает данные  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
Владислав Колосов
особенности драйвера. видимо.
У самого MS 2012 в скриптах есть баг, не помню где находил. xp_cmdshell передают varchar(max), который там не воспринимается. Вылетело из головы, к сожалению, в какой ситуации.
У него же это на разных инстансах одной версии сиквела (правда, неизвестно на какой).
Может быть дело либо в разных драйверах к ораклу, либо в разных параметрах линкед-сервера.
22 ноя 16, 13:28    [19920421]     Ответить | Цитировать Сообщить модератору
 Re: Удаленное выполнение табличной функции через linked server к Oracle не возвращает данные  [new]
mikka sikorsky
Member

Откуда:
Сообщений: 64
alexeyvg,
линкед-серверы настроены одинаково.

Думается мне, что надо бы снести те инстансы, где не работает varchar(max) и заново установить
22 ноя 16, 13:36    [19920505]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить