我目前正在使用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 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语句)。
非常感谢您的协助。
答案 0 :(得分:3)
不带括号的EXEC运行存储过程。
所以尝试:
truncate table [jerry].[dbo].[purchases]
insert into [jerry].[dbo].[purchases]
exec ( @sqlcode ) at olap
请参见execute