Миграция с размещенного SQL сервера на AWS RDS, который является управляемой службой (SaaS), мы не смогли включить xp_cmdshell
.
Наше приложение java в настоящее время использует хранимую процедуру, которая использует xp_cmdshell
для выполнения BCP.exe ( Программа группового копирования - это инструмент командной строки, используемый для импорта или экспорта данных в Microsoft SQL Сервер ) для экспорта больших данных в файлы CSV.
И поскольку xp_cmdshell
нельзя включить в RDS, мы не можем использовать его для выполнения 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?