0

我正在尝试创建一个 SQL Server 存储过程来生成一个 XML 文件。生成文件后,它必须将文件 SFTP 到 UNIX 服务器。我以前从未做过 SFTP 的事情,所以我在这里寻求帮助。请查看我编写的以下存储过程并帮助我。

USE [myDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[GenerateXML]
AS
SELECT FileID, SystemID, FileName
FROM dbo.File
FOR XML raw('File'), elements, root('File')
DECLARE @cmd VARCHAR(255)
SET @cmd = 'osql -E /Q  “exec GenerateXMLproc”  /o usadevenv01:/home/xml/file.xml'
EXEC xp_cmdshell @cmd
GO
4

1 回答 1

2

我遇到了类似的问题,我使用 SSIS 和一个名为 WINSCP 的免费工具解决了它。

首先你应该知道:

默认情况下,SQL Server Integration Services (SSIS) 不支持访问 SFTP 站点。完成它的一种方法是使用第三方软件,有一个名为 WinSCP 的免费工具,它提供了一个命令行实用程序来与 SFTP 站点进行通信。它必须从命令行编写脚本,然后从 SSIS 执行。

然后...

第一步是下载并安装 WinSCP,您需要在将运行 SSIS 包的 SQL 服务器上执行此操作。安装 WinSCP 后,您应该在 WinSCP 中创建与远程 sFTP 服务器的连接,以便测试并确认您可以连接到它。创建并命名一个保存的会话,以便您以后可以从脚本中调用该会话。

最后...

使用存储过程部署和执行 SSIS 包

http://www.codeproject.com/Articles/23740/SFTP-with-SSIS-Packages

http://gregcaporale.wordpress.com/2012/02/23/using-sftp-in-sql-server-ssis/

http://technet.microsoft.com/en-us/library/jj820152.aspx

祝你好运!

于 2013-09-03T18:31:30.253 回答