リンクサーバーに対するOPENQUERYの8000文字の制限


10

OPENQUERYSSRS / SQL Server 2014で実行しようとしているクエリがありますが、次のエラーが発生し続けます。

[...]で始まる文字列が長すぎます。最大長は8000です。

この制限を回避する方法はありますか?

参考までに、リンクされたMySQLサーバーを介してSSRSからクエリを実行しようとしています。


回答:


12

次のように、をOPENQUERY使用することにより、の8000文字の制限をバイパスできEXECUTE ATます。

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

EXECUTE (@myStatement) AT LinkedServerName

これによってエラーがスローされないようにRPC OUTするには、次のコマンドを発行して、リンクサーバーでオプションを有効にする必要があります。

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

またはGUI内で有効にする:

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.