绕过 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 语句更短)。
- 我无法编辑 SQL 查询
- 我无法编辑外部 OLAP 的数据库权限(我不是 DBA,也不在安全组中)
非常感谢任何帮助。
不带括号的 EXEC 运行存储过程。
所以尝试:
truncate table [jerry].[dbo].[purchases]
insert into [jerry].[dbo].[purchases]
exec ( @sqlcode ) at olap
我目前正在使用 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 语句更短)。
- 我无法编辑 SQL 查询
- 我无法编辑外部 OLAP 的数据库权限(我不是 DBA,也不在安全组中)
非常感谢任何帮助。
不带括号的 EXEC 运行存储过程。
所以尝试:
truncate table [jerry].[dbo].[purchases]
insert into [jerry].[dbo].[purchases]
exec ( @sqlcode ) at olap