SSIS-SqlTask控件使用

使用SQL TASK控件:SQL控件如果使用到返回值,也就是说使用到了结果集,请参考:SSIS结果集使用;需要注意的是,结果集是"完整结果集"时,需要使用Foreach控件。

补充知识: EXECUTION_ID:是SSIS包每次执行的唯一标识; PACKAGE_NAME:是SSIS包的名称; MACHINE_NAME: 是机器名称;这些参数在SSIS包中的系统参数可查!

 

示例1:往目标数据库中插入数据,数据源来自SSIS包本身。

1、建立目标数据库:T_Logs

create table T_Logs
(
  ID INT PRIMARY KEY IDENTITY(1,1),
  EXECUTION_ID NVARCHAR(255),
  PACKAGE_NAME NVARCHAR(255),
  MACHINE_NAME NVARCHAR(255),
  START_TIME DATETIME NULL,
  FINISH_TIME DATETIME NULL,
  EXECUTION_STATUS_ID  INT
)

 2、使用SSIS中SQL TASK控件插入数据,连接数据源,构建SQL语句,INSERT INTO T_Logs VALUES(?,?,?,GETDATE(),NULL,1),注意,“?”这种占位符的形式只适用于SQLSERVER.

 

 3、运行查看结果:

 

示例2:使用SQL TASK执行存储过程

1、准备执行的存储过程:

CREATE PROCEDURE PRO_TLogs
@EXECUTION_ID NVARCHAR(255),
@PACKAGE_NAME NVARCHAR(255),
@MACHINE_NAME NVARCHAR(255),
@ID INT OUTPUT     
AS
BEGIN    
    SET NOCOUNT ON;
    INSERT INTO T_Logs VALUES(@EXECUTION_ID,@PACKAGE_NAME,@MACHINE_NAME,GETDATE(),NULL,2)
    --@@IDENTITY 是SQLSERVER中内置的参数,代表得到上一次插入记录时自动产生的ID
SELECT @ID=@@IDENTITY RETURN 100 END GO


--以上存储过程如果手动执行,就要使用SQL脚本
DECLARE @IDOUT INT
DECLARE @RETURN_VALUE INT

EXEC @RETURN_VALUE= PRO_TLogs @EXECUTION_ID='002', @PACKAGE_NAME='HELLO', @MACHINE_NAME='ABO', @ID=@IDOUT OUTPUT
SELECT @IDOUT AS '自增长ID',@RETURN_VALUE AS '返回值'
--执行结果:

2、使用SSIS中SQL TASK控件执行存储过程

   2.1 构建SQL语句:

    2.2 由于参数@RETURN_VALUE和@IDOUT并不是系统参数,所以我们要自己创建两个USER变量

 

 

   2.3 执行包查看结果:

    2.4:扩展,使用脚本任务接受返回值:


 

 

疑问?这里请教大神? 示例1和实例2,读者应该注意了,参数名称的设置不同,一个可以任意设置(包执行无误),一个则不可以(如果任意取名,则包执行失败)?望大神Z指点迷津!!!--->请留言!

 

转载于:https://www.cnblogs.com/java-oracle/p/6414411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值