当前位置: 首页 > 面试题库 >

在OPENQUERY无法使用EXECUTE时绕过字符限制

漆雕欣德
2023-03-14
问题内容

我目前正在使用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文章中得到了支持。

我引用了这些网站:

  • -MSDN一 -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,也不是安全组中的我)

非常感谢您的协助。


问题答案:

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

因此,请尝试:

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

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

见执行



 类似资料:
  • 问题内容: 我正在尝试将字符串解析为对象。我在下面的链接中查看了jQueryparseJSON文档, 我也包括了jquery库,所以我知道不是那样的。 到目前为止,这是我的代码 在Firebug中,出现以下错误: 我知道该解决方案很可能非常简单,但是我一直反复忽略它。 问题答案: 示例代码中的测试字符串不是有效的JSON: 现在,如果由于所有服务使该对象作为JSON字符串可用而执行所有操作,则jQ

  • 简要描述 关于反射型的基本东西,暂时就到这啦,如果后面有什么好的 case,再做增补。最近,有些人会问到怎么绕过浏览器的 XSS 过滤 器,所以从这节开始,给出点绕过的例子。当然这些绕过浏览器的方法,不是万能的。不同浏览器,不同场景都会存在差异。满足场景 要求时,才可以使用。 此文给出的是一个来自 sogili 分享的 chrome 下绕过过滤器的方法,在腾讯某处 XSS 上的应用。 这一类都算是

  • 我知道在根设备上运行包含敏感信息的应用程序根本不安全。因此,开发人员通常会在这种情况下进行根目录检测,如果发现设备已根目录,则无法安装该应用程序。一切都好。 开发人员在根检测中使用的主要技术是检查超级用户。apk文件、检查chainfire、busybox、执行su命令等。但攻击者可以通过多种方式绕过这些检查,如重命名超级用户。apk到超级用户0。apk。 所以,我要寻找的是一个独特的解决方案,在

  • 给定一个字符串,在不重复字符的情况下,找到最长子字符串的长度。例如,“abcabcbb”的不重复字母的最长子字符串是“abc”,其长度为3。对于“bbbbb”,最长的子字符串是“b”,长度为1。 对于长可重复字符串的最后一次测试,超过了时间限制。不知道如何优化。寻求改进,谢谢

  • 您很快就会意识到,JDK8在Javadoc方面要严格得多(默认情况下)。(链接-参见最后一个项目符号) 如果您从未生成任何Javadoc,那么您当然不会遇到任何问题,但是像Maven发布流程这样的事情,可能还有您的CI构建,在使用JDK7时会突然失败。检查Javadoc工具的exit值的任何操作现在都将失败。与JDK7相比,JDK8 Javadoc在方面可能也更冗长,但这不是本文的范围。我们正在讨

  • 我有一个在端口5050上运行localhost的AWS.NetCore Lambda服务器。 当我尝试并提出请求时,我得到了cors错误: CORS策略阻止了从来源“http://localhost:3000”获取“http://localhost:5050/”的访问:对飞行前请求的响应没有通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。如果一个不