web-dev-qa-db-fra.com

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

J'ai une requête que j'essaie d'exécuter via OPENQUERY sur 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é.

10
Salmononius2

Vous pouvez contourner la limite de 8 000 caractères de OPENQUERY en 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 RPC OUT sur le serveur lié, en exécutant 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:

enter image description here

12
John Eisbrener