Batas 8000 karakter pada OPENQUERY terhadap server yang ditautkan

10

Saya punya pertanyaan yang saya coba jalankan OPENQUERYdi SSRS / SQL Server 2014, tapi saya terus mendapatkan kesalahan:

String karakter yang dimulai dengan [...] terlalu panjang. Panjang maksimum adalah 8000.

Apakah ada cara untuk mengatasi keterbatasan ini?

Untuk referensi, saya mencoba menjalankan kueri dari SSRS melalui Server MySQL yang ditautkan.

Salmononius2
sumber
Mari kita lanjutkan diskusi ini dalam obrolan .
John Eisbrener

Jawaban:

12

Anda dapat melewati batas 8000 karakter OPENQUERYdengan memanfaatkan EXECUTE AT, sebagai berikut:

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

EXECUTE (@myStatement) AT LinkedServerName

Untuk memastikan ini tidak menimbulkan kesalahan, Anda harus mengaktifkan RPC OUTopsi di server yang ditautkan, dengan mengeluarkan perintah berikut:

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

Atau mengaktifkannya dalam GUI:

masukkan deskripsi gambar di sini

John Eisbrener
sumber