Limite de 8 000 caractères sur OPENQUERY sur un serveur lié

10

J'ai une requête que j'essaie d'exécuter OPENQUERYsur SSRS / SQL Server 2014, mais je reçois toujours une erreur de:

La chaîne de caractères commençant par [...] est trop longue. La longueur maximale est de 8000.

Existe-t-il un moyen de contourner cette limitation?

Pour référence, j'essaie d'exécuter une requête à partir de SSRS via un serveur MySQL lié.

Salmononius2
la source
Continuons cette discussion dans le chat .
John Eisbrener

Réponses:

12

Vous pouvez contourner la limite de 8 000 caractères OPENQUERYen utilisant EXECUTE AT, comme suit:

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

EXECUTE (@myStatement) AT LinkedServerName

Afin de vous assurer que cela ne génère pas d'erreur, vous devez activer l' RPC OUToption sur le serveur lié, en émettant la commande suivante:

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

Ou l'activer dans l'interface graphique:

entrez la description de l'image ici

John Eisbrener
la source