SQL-сервер связал сервер с оракулом 8000 предел - PullRequest
0 голосов
/ 27 марта 2012

У меня запрос, длина которого превышает 8000, я пытался выполнить его следующим образом, но он не был выполнен.Я использовал эту ссылку для справки.

Declare @query1 As varchar(8000)
Declare @query2 As varchar(8000)

    SELECT TOP 1000 * 
    FROM OPENQUERY(OPTIMA,@query1+@query2)

Ошибка:

Msg 102, Level 15, State 1, Line 74
Incorrect syntax near '@query1'.

Мне не разрешено создавать представление или хранимую процедуру на удаленном сервере.

Ответы [ 3 ]

0 голосов
/ 27 марта 2012

OPENQUERY() имеет встроенное ограничение 8 КБ для вашего @query, вам также не разрешено использовать переменные для входов (при попытке обойти ограничение 8 КБ).

Я все еще рекомендую создать сохраненный процесс на целевом сервере и вызывать его с помощью OPENQUERY().

Ссылка: http://msdn.microsoft.com/en-us/library/ms188427.aspx

0 голосов
/ 08 октября 2015

У меня была такая же проблема пару дней назад, в основном я использовал 'UNION ALL' для объединения нескольких запросов в openquery.

Моим решением было объединение на локальном сервере вместоудаленный сервер, он не увеличил число извлекаемых строк, потому что я все равно использовал union, он просто заставил меня использовать несколько операторов openquery вместо одного.

Он сделал свою работу(так как я не уполномочен делать что-либо на удаленном сервере).Если вы можете, и hkf , и Jokke Heikkilä имеют правильные ответы, просто сделайте sp или просмотр на удаленном сервере.

0 голосов
/ 27 марта 2012

Создайте новое представление для базы данных Oracle вашего запроса, чтобы вы могли уменьшить длину запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...