执行脚本任务引发错误“程序包执行返回了DTSER_FAILURE(1)”

卡尔提克·文卡特拉曼(Karthik Venkatraman)

我有一个SSIS程序包,它将从一组excel文件中加载数据,然后将这些文件归档到指定的文件夹中。

Excel文件存储在一个文件夹中,在该文件夹中,我有存档文件夹。

以下是我的脚本任务代码供参考。

public void Main()
        {
            // TODO: Add your code here
            string sourceDir =  Dts.Variables["User::strFilePath"].Value.ToString();
            string destDir = Dts.Variables["User::strArchivePath"].Value.ToString();

            DirectoryInfo di = new DirectoryInfo(sourceDir);
            string[] sDirFiles = Directory.GetFiles(sourceDir);
            FileInfo[] fi = di.GetFiles("*.xls");
            int fileCnt = fi.Length;
                for (int i = 0; i < fileCnt; i++)
                {
                    String filename = fi[i].Name;
                    string[] splitFilename = filename.Split('.');

                    DateTime dt = DateTime.Now;
                    string ArchiveDate = String.Format("{0:ddMMMyyyy}", dt);

                    string sourceFileName = filename;
                    string sourceFilePath = sourceDir + filename;
                    string destinationFileName = splitFilename[0] + '_' + ArchiveDate + '.' + splitFilename[1];
                    string destinationPath = destDir + destinationFileName;


                    //MessageBox.Show("Source File " + sourceFilePath + " to destination " + destinationPath);
                    if (File.Exists(destinationPath))
                        File.Delete(destinationPath);
                    // To move a file or folder to a new location:
                    System.IO.File.Move(sourceFilePath, destinationPath);
                }
            Dts.TaskResult = (int)ScriptResults.Success;
        }

sourceDir和destDir是提供源文件文件夹和归档文件夹路径的变量。当我从Visual Studio运行该程序包时,该程序运行良好。

通过创建清单文件,我已经使用部署实用程序将其部署为作为作业运行。运行作业时,我的存档脚本任务出错。下面是它的屏幕截图。

在此处输入图片说明

我在stackoverflow中搜索了解决方案,但是提供的解决方案无法解决我的问题。

使用SQL代理运行SSIS包时出现问题-失败,并显示“ DTSER_FAILURE(1)”

DTSX程序包在Visual Studio中运行,但从数据库作业中调用时不能运行

我已授予两个文件夹对SQL Server的读写权限。仍然遇到相同的错误?

任何帮助都将受到高度赞赏。

卡尔提克·文卡特拉曼(Karthik Venkatraman)

我用文件系统任务替换了脚本任务,它可以正常工作。我还创建了一个代理帐户,以使用我的系统凭据运行该程序包,以便它可以访问指定的文件夹。

采取步骤创建用于运行SQL作业的代理帐户,以便对寻找它的用户有所帮助。

在需要运行作业的SQL中创建一个用户帐户,为创建的用户帐户创建凭据。

    --Script #1 - Creating a credential to be used by proxy
USE MASTER
GO 
--Drop the credential if it is already existing 
IF EXISTS (SELECT 1 FROM sys.credentials WHERE name = N'SSISProxyCredentials') 
BEGIN 
DROP CREDENTIAL [SSISProxyCredentials] 
END 
GO 
CREATE CREDENTIAL [SSISProxyCredentials] 
WITH IDENTITY = N'<Insert the Username>', 
SECRET = N'abcd@0987' 
GO

创建代理帐户并关联创建的凭据

--Script #2 - Creating a proxy account 
USE msdb
GO 
--Drop the proxy if it is already existing 
IF EXISTS (SELECT 1 FROM msdb.dbo.sysproxies WHERE name = N'SSISProxyDemo') 
BEGIN 
EXEC dbo.sp_delete_proxy 
@proxy_name = N'SSISProxyDemo' 
END 
GO 
--Create a proxy and use the same credential as created above 
EXEC msdb.dbo.sp_add_proxy 
@proxy_name = N'SSISProxyDemo', 
@credential_name=N'SSISProxyCredentials', 
@enabled=1 
GO 
--To enable or disable you can use this command 
EXEC msdb.dbo.sp_update_proxy 
@proxy_name = N'SSISProxyDemo', 
@enabled = 1 --@enabled = 0 
GO

将代理帐户授予SQL Server代理子系统

USE msdb
GO 
--You can view all the sub systems of SQL Server Agent with this command
--You can notice for SSIS Subsystem id is 11 
EXEC sp_enum_sqlagent_subsystems 
GO

--Grant created proxy to SQL Agent subsystem 
--You can grant created proxy to as many as available subsystems 
EXEC msdb.dbo.sp_grant_proxy_to_subsystem 
@proxy_name=N'SSISProxyDemo', 
@subsystem_id=11 --subsystem 11 is for SSIS as you can see in the above image 
GO 
--View all the proxies granted to all the subsystems 
EXEC dbo.sp_enum_proxy_for_subsystem

授予对安全主体的代理访问权限

USE msdb
GO 
--Grant proxy account access to security principals that could be
--either login name or fixed server role or msdb role
--Please note, Members of sysadmin server role are allowed to use any proxy 
EXEC msdb.dbo.sp_grant_login_to_proxy 
@proxy_name=N'SSISProxyDemo' 
,@login_name=N'<Insert the Username>' 
--,@fixed_server_role=N'' 
--,@msdb_role=N'' 
GO 
--View logins provided access to proxies 
EXEC dbo.sp_enum_login_for_proxy 
GO

最后,将代理帐户关联到打包步骤。也可以通过作业向导来完成。

EXEC msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'SSISPackageCall', 
@step_id=1, 
@cmdexec_success_code=0, 
@on_success_action=1, 
@on_success_step_id=0, 
@on_fail_action=2, 
@on_fail_step_id=0, 
@retry_attempts=0, 
@retry_interval=0, 
@os_run_priority=0, @subsystem=N'SSIS', 
@command=N'/FILE "C:\Package.dtsx" /CHECKPOINTING OFF /REPORTING E', 
@database_name=N'master', 
@flags=0, 
@proxy_name = N'SSISProxyDemo';

感谢您对我的帖子的宝贵答复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免SSIS中动态“执行程序包任务”中的错误?

来自分类Dev

Python-在一个文件夹中执行脚本时会引发错误。但不是在另一个执行时

来自分类Dev

第一次返回执行过程任务的SSIS程序包:未能锁定变量

来自分类Dev

在vs 2015中执行更新程序包时出现“程序包”错误

来自分类Dev

语料库程序包的tolower函数引发错误

来自分类Dev

Webpack执行一些后期构建脚本任务

来自分类Dev

在sis脚本任务中执行sql不能正常工作

来自分类Dev

如何在Integration Services的执行Sql任务中引发错误?

来自分类Dev

pip如何使程序包可执行?

来自分类Dev

执行程序包时出错

来自分类Dev

无法从我自己的程序包中运行脚本

来自分类Dev

无法从我自己的程序包中运行脚本

来自分类Dev

文件更改时执行脚本/程序

来自分类Dev

如何使用C#从sis程序包执行特定任务?

来自分类Dev

从外部应用程序执行具有脚本组件的SSIS 2012程序包

来自分类Dev

PyInstaller“无法执行脚本”错误

来自分类Dev

手动执行脚本有效,但在任务计划程序中无效

来自分类Dev

SSIS中的错误错误-[执行SQL任务]错误:为ResultSetType返回了无效数量的结果绑定:“ ResultSetType_Rowset”

来自分类Dev

NPM脚本可自动执行程序包增量和GIT推送

来自分类Dev

Python:无错误执行脚本,不执行任何操作

来自分类Dev

停止执行脚本?

来自分类Dev

使按钮执行脚本

来自分类Dev

自动执行脚本

来自分类Dev

下载并执行脚本

来自分类Dev

为什么在尝试执行SSIS程序包时出现错误:“无法与调试主机进程通信”?

来自分类Dev

SSIS脚本任务System.IO.File.WriteAllText引发“进程无法访问文件”错误

来自分类Dev

访问 Azure 服务总线队列的 SSIS 脚本任务引发 X.509 证书错误

来自分类Dev

取消SQL * PLUS执行而不会引发错误

来自分类Dev

为什么流程不执行,没有引发错误?

Related 相关文章

  1. 1

    如何避免SSIS中动态“执行程序包任务”中的错误?

  2. 2

    Python-在一个文件夹中执行脚本时会引发错误。但不是在另一个执行时

  3. 3

    第一次返回执行过程任务的SSIS程序包:未能锁定变量

  4. 4

    在vs 2015中执行更新程序包时出现“程序包”错误

  5. 5

    语料库程序包的tolower函数引发错误

  6. 6

    Webpack执行一些后期构建脚本任务

  7. 7

    在sis脚本任务中执行sql不能正常工作

  8. 8

    如何在Integration Services的执行Sql任务中引发错误?

  9. 9

    pip如何使程序包可执行?

  10. 10

    执行程序包时出错

  11. 11

    无法从我自己的程序包中运行脚本

  12. 12

    无法从我自己的程序包中运行脚本

  13. 13

    文件更改时执行脚本/程序

  14. 14

    如何使用C#从sis程序包执行特定任务?

  15. 15

    从外部应用程序执行具有脚本组件的SSIS 2012程序包

  16. 16

    PyInstaller“无法执行脚本”错误

  17. 17

    手动执行脚本有效,但在任务计划程序中无效

  18. 18

    SSIS中的错误错误-[执行SQL任务]错误:为ResultSetType返回了无效数量的结果绑定:“ ResultSetType_Rowset”

  19. 19

    NPM脚本可自动执行程序包增量和GIT推送

  20. 20

    Python:无错误执行脚本,不执行任何操作

  21. 21

    停止执行脚本?

  22. 22

    使按钮执行脚本

  23. 23

    自动执行脚本

  24. 24

    下载并执行脚本

  25. 25

    为什么在尝试执行SSIS程序包时出现错误:“无法与调试主机进程通信”?

  26. 26

    SSIS脚本任务System.IO.File.WriteAllText引发“进程无法访问文件”错误

  27. 27

    访问 Azure 服务总线队列的 SSIS 脚本任务引发 X.509 证书错误

  28. 28

    取消SQL * PLUS执行而不会引发错误

  29. 29

    为什么流程不执行,没有引发错误?

热门标签

归档