• 存储过程调用DTS包实现大批量数据导入


    存储过程执行DTS包

    set @shellSql = 'dtsrun /S "' + @serverip +'" /U "' + @user + '" /P "' + @pwd + '" /N "gz_ParseFile_City" /A "type_id":"19"="' + cast(@type_id  as varchar)
    + '" /A "filename":"8"="' + @file_name + '" /A "cityID":"19"="' + cast(@cityID as varchar) + '"'


    exec master..xp_cmdshell @shellSql

    具体参数如何使用请看下面从Sql Server帮助里复制过来的内容:

    
    

    dtsrun 实用工具

    dtsrun 实用工具执行用数据转换服务 (DTS) 创建的包。DTS 包可存储在 Microsoft® SQL Server™ 2000 msdb 数据库、COM 结构化存储文件或 SQL Server Meta Data Services 中。

    语法

    dtsrun
    [/?]|
    [
        [
            /[~]S server_name[\instance_name]
            { {/[~]U user_name [/[~]P password]} | /E }
        ]
        {    
            {/[~]N package_name }
            | {/[~]G package_guid_string}
            | {/[~]V package_version_guid_string}
        }
        [/[~]M package_password]
        [/[~]F filename]
        [/[~]R repository_database_name]
        [/A global_variable_name:typeid=value]
        [/L log_file_name]
        [/W NT_event_log_completion_status]
        [/Z] [/!X] [/!D] [/!Y] [/!C]
    ]

    /?

    显示命令提示选项。

    ~

    指定接下来的参数采取十六进制文本表示加密的参数值。可以和 /S/U/P/N/G/V/M/F /R 选项一起使用。使用加密的值增加了用于执行 DTS 包的命令的安全性,因为服务器名称、密码等等都不可见。使用 /!Y 确定加密的命令。

    /S server_name[\instance_name]

    指定要连接到的 SQL Server 实例。指定用于连接到该服务器上的 SQL Server 默认实例的 server_name。指定用于连接到该服务器上的 SQL Server 2000 命名实例的 server_name\instance_name

    /U user_name

    是用于连接到 SQL Server 实例的登录 ID。

    /P password

    是同登录 ID 一起使用的用户指定的密码。

    /E

    指定信任连接(不需密码)。

    /N package_name

    当创建 DTS 包时为包所指派的名称。

    /G package_guid_string

    当创建 DTS 包时指派给它的包 ID。该包 ID 是 GUID。

    /V package_version_guid_string

    当第一次保存或执行 DTS 包时指派给它的版本 ID。每次修改 DTS 包时都指派给它新的版本 ID。该版本 ID 是 GUID。

    /M package_password

    当创建 DTS 包时指派给它的可选密码。

    /F filename

    包含 DTS 包的结构化存储文件的名称。如果也指定了 server_name,则执行从 SQL Server 中检索到的 DTS 包并且将该包添加到结构化存储引擎。

    /R repository_database_name

    包含 DTS 包的知识库数据库名称。如果没有指定名称,则使用默认的数据库名称。

    /A global_variable_name:typeid=value

    指定一个包全局变量,其中 typeid = 全局变量数据类型的类型标识符。可以引用整个参数字符串。该参数可重复使用以指定多个全局变量。有关全局变量的各种可用类型标识符的信息,请参见下面的表1

    若要使用该命令开关设置全局变量,必须有包的所有者权限或者该包必须已在未启用 DTS 密码保护的状态保存。如果没有所有者权限,可以指定全局变量,但是所用的值将是设置在包中的值,而不是那些用 /A 命令开关指定的值。

    /L log_file_name:

    指定包日志文件的名称。

    /W Windows_Event_Log

    指定是否在 Windows 应用程序日志中写入包执行的完成状态。指定 TrueFalse

    /Z

    指示使用 SQL Server 2000 加密对 dtsrun 命令行进行加密。

    /!X

    阻塞选定 DTS 包的执行。当想要无须执行包便能创建加密的命令行时,使用该命令参数。如果未指定此选项,则将立即执行 DTS 包。

    /!D

    从 SQL Server 实例中删除 DTS 包。将不执行此包。从结构化存储文件中删除特定的 DTS 包是不能实现的。需要使用 /F/S 选项重写整个文件。

    /!Y

    显示用于执行 DTS 包的加密命令,但不执行该命令。

    /!C

    将用于执行 DTS 包的命令复制到 Microsoft Windows® 剪贴板上。此选项也可与 /!X/!Y 一起使用。

    表1:

    数据类型类型 ID
    Integer (small) 2
    Integer 3
    Real (4-byte) 4
    Real (8-byte) 5
    Currency 6
    Date 7
    String 8
    Boolean 11
    Decimal 14
    Integer (1-byte) 16
    Unsigned int (1-byte) 17
    Unsigned int (2-byte) 18
    Unsigned int (4-byte) 19
    Integer (8-byte) 20
    Unsigned int (8-byte) 21
    Int 22
    Unsigned int 23
    HRESULT 25
    Pointer 26
    LPSTR 30
    LPWSTR 31

  • 相关阅读:
    防止IE缓存jquery ajax 内容
    MyBatis中主要类的生命周期和应用范围
    MyBatis学习练习
    MySql 日期格式化函数date_format()
    getFields()和getDeclaredFields()
    Java final修饰形参
    随笔
    Java SSH远程执行Shell脚本实现(转)
    jQuery 属性操作
    [git]解决:git config --global push.default matching
  • 原文地址:https://www.cnblogs.com/Aricc/p/1341614.html
Copyright © 2020-2023  润新知