AWS RDS SQL Server:将大数据从存储过程导出到CSV文件中

问题描述 投票:0回答:1

从托管SQL Server迁移到作为托管服务(SaaS)的AWS RDS,我们无法启用xp_cmdshell

我们的Java应用程序当前使用存储过程,该存储过程使用xp_cmdshell执行BCP.exe(大容量复制程序是用于根据Microsoft SQL Server导入或导出数据的命令行工具)来导出大数据到CSV文件。

并且由于无法在RDS上启用xp_cmdshell,因此我们无法使用它来执行BCP。存储过程代码:

declare @bcp_header varchar(8000)
declare @bcp varchar(8000)
declare @bcpCopy varchar(8000)
declare @deleteFile varchar(300)

select @bcp_header = 'BCP "' + @header_select + '" queryout ' + @pathAndFileName +'.csv  -c -C 1252 -t; -T '
select @bcp = 'BCP "' + @sql_export + '" queryout  '+ @pathAndFileName +'_data.csv -c -C 1252 -t; -T '
select @bcpCopy = 'TYPE  '+ @pathAndFileName +'_data.csv >> '+ @pathAndFileName +'.csv'
select @deleteFile = 'DEL '+@pathAndFileName +'_data.csv'

exec master..xp_cmdshell @bcp_header
exec master..xp_cmdshell @bcp
exec master..xp_cmdshell @bcpCopy 
exec master..xp_cmdshell @deleteFile

我们可以使用T-SQL命令将查询结果导出到CSV文件并将其托管在S3上吗?

sql-server amazon-web-services amazon-s3 amazon-rds sqlbulkcopy
1个回答
0
投票

我们可以使用T-SQL命令将查询结果导出到CSV文件并将其托管在S3上吗?

不。 BCP命令有TSQL替代方法,但仅适用于IMPORT。

[您最好的选择是编写一个程序,该程序通过某种SELECT语句从SQL返回数据并自行写出文件-bascailly是BCP的自家替代品。

开箱即用,没有什么可以替代BCP,因为所有非BCP批量功能都是用于程序设计或仅用于导入。

© www.soinside.com 2019 - 2024. All rights reserved.