如何解决在OPENQUERY无法使用EXECUTE时绕过字符限制
不带括号的EXEC运行存储过程。
因此,请尝试:
truncate table [jerry].[dbo].[purchases]
insert into [jerry].[dbo].[purchases]
exec ( @sqlcode ) at olap
见执行
解决方法
我目前正在使用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文章中得到了支持。
我引用了这些网站:
并了解到我可以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,也不是安全组中的我)
非常感谢您的协助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。