绕过 OPENQUERY 失败使用 EXECUTE 的字符限制

Bypassing character limit on OPENQUERY failing use EXECUTE

我目前正在使用 SQL Server Management Studio 17 连接到 Oracle 数据库实例,然后提取一些数据并将其插入我拥有的 SQL 服务器 Table。

我已尝试执行以下操作:

DROP TABLE IF EXISTS [jerry].[dbo].[purchases]
SELECT * INTO [jerry].[dbo].[purchases] FROM OPENQUERY(OLAP, '

    proprietary sql code

');

但是 SQL 代码大约有 9500 个字符,因此 OPENQUERY 失败,MSDN articles

支持

我参考了这些网站:

并了解到我可以使用 EXEC 来实现我的目标。 我尝试执行以下操作:

EXEC master.dbo.sp_serveroption @server=N'OLAP', @optname=N'rpc out', @optvalue=N'true'
DECLARE @sqlcode VARCHAR(MAX)
SET @sqlcode = 'sql code'


DROP TABLE IF EXISTS [jerry].[dbo].[purchases]
EXEC @sqlcode AT OLAP

但是,我仍然遇到 Invalid Syntax near OLAP 错误。 我已经确认 OLAP 是我们 DBA 的正确名称,其他 OPENQUERY 函数工作正常(SQL 语句更短)。

非常感谢任何帮助。

不带括号的 EXEC 运行存储过程。

所以尝试:

truncate table [jerry].[dbo].[purchases]

insert into [jerry].[dbo].[purchases]
exec ( @sqlcode ) at olap

execute