sql-server - 如何使用 SQL Server 和 AWS RSD 读取 XML 文件?
问题描述
我在 AWS RSD 上有一个数据库,我有一个 AWS 的基本帐户。我发现我必须将 XML 文件存储在 Internet 上,然后我必须从 URL 中读取它。
因此,我将 XML 文件存储到 Github 存储库中,然后执行下面的查询。在我的本地服务器上,我必须执行 RECONFIG 来激活一些权限。
它在我的本地服务器上运行良好,但在我的 AWS 数据库中它不起作用。它打印权限错误sp_OACreate, sp_OAMethod, sp_OAGetProperty, sp_OADestroy
。我也没有权限执行sp_configure
和RECONFIGURE
.
我试图更改服务器页面中的设置,但我没有找到任何东西。
DECLARE
@url VARCHAR(1000),
@url2 VARCHAR(300),
@win INT,
@hr INT,
@Text VARCHAR(4000),
@xml XML
SET @url = 'https://raw.githubusercontent.com/KevinFallas03/FacturacionMunicipal_BD/master/Base%20de%20Datos/XML/Administradores.xml'--current file
SET @url2 = 'http://www.bnr.ro/nbrfxrates.xml'--test file
EXEC @hr = sp_OACreate 'WinHttp.WinHttpRequest.5.1', @win OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Open', NULL, 'GET', @url, 'false'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Send'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAGetProperty @win, 'ResponseText', @Text OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OADestroy @win
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
SELECT @Text
SET @xml=CAST(@Text AS XML)
SELECT @xml
查询激活权限,它适用于本地数据库:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
我的意图是从我在 AWS 的数据库中读取一个 XML 文件。所以,如果有其他方法可以做到这一点,请告诉我。
解决方案
RDS 提供了许多不同类型的数据库。看起来您正在使用 Microsoft SQL Server。
RDS 是一种托管数据库服务。这意味着您没有数据库的完整管理员权限。您似乎希望使用 OLE 自动化,这需要使用某些存储过程,例如sp_OACreate
.
RDS Microsoft SQL Server不支持OLE 自动化。一种替代方法是安装和管理您自己在 EC2 上运行的 MS SQL Server。
推荐阅读
- python - SQLalchemy 类型的值
- email - CRM 动态。电子邮件。工作流程
- javascript - DevTools 未能加载 SourceMap:
- javascript - Stencil EventEmitter 不向 Vue 实例发送数据
- javascript - html网站的布局?
- websphere - 用于 json 比较的 IBM ODM UI 模型
- java - 增量如何在多线程中工作?
- php - ld:致命:文件/usr/local/lib/libiconv.so:错误的ELF类:ELFCLASS32
- c++ - 实例化从 std::queue 继承的自定义队列时出错
- html - 不使用 javascript 的客户端随机数(针对 lynx 和 cli)