我目前正在使用SQL Server Management Studio 17连接到Oracle数据库实例,然后提取一些数据并将其插入到我拥有的SQL Server表中。
我尝试执行以下操作:
DROP TABLE IF EXISTS [jerry].[dbo].[purchases] SELECT * INTO [jerry].[dbo].[purchases] FROM OPENQUERY(OLAP, ' proprietary sql code ');
但是,SQL代码大约为9500个字符,因此OPENQUERY失败,这在MSDN文章中得到了支持。
OPENQUERY
我引用了这些网站:
并了解到我可以EXEC用来实现自己的目标。我尝试实现以下内容:
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语句)。
Invalid Syntax near OLAP
OLAP
非常感谢您的协助。
不带括号的EXEC运行存储过程。
因此,请尝试:
truncate table [jerry].[dbo].[purchases] insert into [jerry].[dbo].[purchases] exec ( @sqlcode ) at olap
见执行