Limit 8000 znaków w OPENQUERY na połączonym serwerze

10

Mam zapytanie, które próbuję uruchomić OPENQUERYna SSRS / SQL Server 2014, ale wciąż pojawia się błąd:

Ciąg znaków rozpoczynający się od [...] jest za długi. Maksymalna długość wynosi 8000.

Czy jest jakiś sposób obejścia tego ograniczenia?

Dla porównania próbuję uruchomić zapytanie z SSRS za pośrednictwem połączonego serwera MySQL.

Salmononius2
źródło

Odpowiedzi:

12

Możesz ominąć limit 8000 znaków OPENQUERY, wykorzystując EXECUTE ATw następujący sposób:

DECLARE @myStatement VARCHAR(MAX)
SET @myStatement = 'SELECT * FROM TABLE WHERE CHARACTERS.... ' -- Imagine that's longer than 8000 characters

EXECUTE (@myStatement) AT LinkedServerName

Aby mieć pewność, że nie spowoduje to błędu, należy włączyć RPC OUTopcję na połączonym serwerze, wydając następujące polecenie:

EXEC master.dbo.sp_serveroption @server=N'LinkedServerName', @optname=N'rpc out', @optvalue=N'true'

Lub włączenie go w GUI:

wprowadź opis zdjęcia tutaj

John Eisbrener
źródło