我一直在努力解决这个问题。我已经阅读了许多关于这个主题的类似问题,但我对此很陌生,我正在阅读“希腊语对我”。也许有人会愿意在这方面帮助我。我创建了一个包含几个步骤的 SSIS 包。第一步是一个脚本任务,它使用 VB8 脚本从 SFTP 服务器拉取数据。脚本如下所示:
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
Public Sub HealthSmart()
Dim Path As String, Path2 As String ', fileName As String, fo As Object, x As Object, y As Object, z As Object, rs As Object
Path = "\\RENYSQL1\share\Health_Smart\Received_Files\Test"
Path2 = "\\RENYMstr1\shared\CLIENT FOLDERS\HEALTHSMART\Original_PDF_Files\Test"
Shell("""C:\Program Files (x86)\Ipswitch\WS_FTP 12\wsftppro.exe"" -s ""Health_Smart:/Test/AMC_Test/*.pdf"" -d ""local:" & Path & "\"" -quiet", vbMaximizedFocus)
Shell("""C:\Program Files (x86)\Ipswitch\WS_FTP 12\wsftppro.exe"" -s ""Health_Smart:/Test/AMC_Test/*.pdf"" -d ""local:" & Path2 & "\"" -quiet", vbMaximizedFocus)
Dts.TaskResult = ScriptResults.Success
End Sub
End Class
在 SSIS 包中执行该步骤时,它运行得非常好。当我将 SSIS 包导入 MSDB 并选择运行包时,它也可以正常运行。但是当我将它作为工作中的一个步骤安排时,它就好像它运行得很完美。但第一步拉的不是数据。
我尝试将 SSIS 包的权限设置为对所有内容具有完全权限的用户。我还尝试在没有密码的情况下将包保护级别设置为 DontSaveSensitive。
在 SQL 作业方面,我尝试在作业中使用 Windows 身份验证以及我之前提到的登录来运行包。都没有奏效。此外,我将其更改为在 32 位上运行 - 但无济于事。
我了解 SQL 作业由 SQL 代理运行。代理是否有特定的登录名?我部门的人说不。
奇怪的是,当我安排作业运行时,它运行并说它是成功的。但是使用上述脚本获取 SFTP 文件的第一步会运行,但不会拉取任何数据。作业活动监视器说它是成功的。
我不知道下一步该做什么。对我轻松点。我是新来的。