SSIS中Sql Task 获取系统变量
执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记。例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @varParameter
的参数标记,而 OLE DB 连接类型要求使用问号 (?) 参数标记。
在变量与参数之间的映射中可以用作参数名的名称也因连接管理器类型而异。例如,ADO.NET 连接管理器类型使用带 @ 前缀的用户定义名称,而 OLE DB 连接管理器类型要求使用从 0 开始的序数数值作为参数名。
下表总结了执行 SQL 任务可以使用的连接管理器类型的 SQL 命令要求。
|
连接类型 |
参数标记 |
参数名称 |
示例 SQL 命令 |
|---|---|---|---|
|
ADO |
? |
Param1, Param2, …… |
SELECT FirstName, LastName, Title FROM Person.Person WHERE BusinessEntityID = ? |
|
ADO.NET |
@<参数名称> |
@<参数名称> |
SELECT FirstName, LastName, Title FROM Person.Person WHERE BusinessEntityID = @parmBusinessEntityID |
|
ODBC |
? |
1, 2, 3, … |
SELECT FirstName, LastName, Title FROM Person.Person WHERE BusinessEntityID = ? |
|
EXCEL 和 OLE DB |
? |
0, 1, 2, 3, … |
SELECT FirstName, LastName, Title FROM Person.Person WHERE BusinessEntityID = ? |
在 ADO.NET 和 ADO 连接管理器中使用参数
ADO.NET 和 ADO 连接管理器对使用参数的 SQL 命令有特定要求:
ADO.NET 连接管理器要求 SQL 命令将参数名称用作参数标记。这意味着变量可以直接映射到参数。例如,变量 @varName
映射到名为 @parName
的参数,并向参数 @parName
提供值。ADO 连接管理器要求 SQL 命令使用问号 (?) 作为参数标记。但是,您可以使用任何用户定义名称(整数值除外)作为参数名称。
为了向参数提供值,可将变量映射到参数名称。然后,执行 SQL 任务使用参数列表中参数名称的序数值来将值从变量加载到参数。
在 EXCEL、ODBC 和 OLE DB 连接管理器中使用参数
EXCEL、
ODBC 和 OLE DB 连接管理器要求 SQL 命令使用问号 (?)作为参数标记,并使用从 0 或 1 开始的数值作为参数名称。如果执行
SQL 任务使用 ODBC 连接管理器,则映射到查询中的第一个参数的参数名称将为 1;否则该参数将命名为
0。对于后续参数,参数名称的数值指示参数名称在 SQL 命令中映射到的参数。例如,名为 3 的参数映射到第三个参数,这是由 SQL
命令中的第三个问号 (?) 来表示的。
若要向参数提供值,可以将变量映射到参数名称,然后执行 SQL 任务使用参数名称的序数值将值从变量加载到参数。
连接管理器使用的访问接口不同时,某些 OLE DB 数据类型可能不受支持。例如,Excel 驱动程序只识别有限的一组数据类型。有关带有 Excel 驱动程序的 Jet 访问接口的行为的详细信息,请参阅 Excel 源
。
在 OLE DB 连接管理器中使用参数
如果执行 SQL 任务使用 OLE DB 连接管理器,则该任务的 BypassPrepare
属性可用。如果执行 SQL 任务使用带有参数的 SQL 语句,则应将此属性设置为 true
。
使用 OLE DB 连接管理器时,不能使用参数化的子查询,这是因为执行 SQL 任务不能通过 OLE DB 访问接口得到参数信息。但是,您可以使用表达式将参数值串联到查询字符串中,并设置该任务的 SqlStatementSource 属性。
SSIS中Sql Task 获取系统变量的更多相关文章
- java中获取系统变量
System.getProperty("java.version") 用来获取系统变量.getProperty()这个方法是获取指定键指示的系统属性的.以下是通过System.ge ...
- Execute SQL Task 参数和变量的映射
Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用 ...
- java 获取系统变量(环境变量和设置变量)
前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会 ...
- java 获取系统变量(环境变量和环境变量)
前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说. 环境变量的处理可能会 ...
- 五十九、SAP中常用预定义系统变量
一.SAP中常用预定义系统变量 内容如下: 二.系统变量定义在结构SYST里,我们打开SE38 三.在代码编辑器输入SYST变量 四.双击SYST,来到这个系统结构,里面有很多系统变量 五.我们随便写 ...
- SSIS Execute SQL Task 用法
Execute Sql Task组件是一个非常有用的Control Flow Task,可以直接执行SQL语句,例如,可以执行数据更新命令(update,delete,insert),也可以执行sel ...
- ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)
1.表单令牌开启配置 'TOKEN_ON'=>true 2.相对路径:在thinkphp中,存在单入口index.php,所以程序中的根目录都是以index.php所在的文件夹为根目录,故用./ ...
- Python中__init__方法/__name__系统变量讲解
__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的初始化. 代码例子 test.py#!/usr/bin/python# Filename: class_i ...
- [转]SSIS Execute SQL Task : Mapping Parameters And Result Sets
本文转自:http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-res ...
随机推荐
- PHP邮件发送(转)
php带有内置的mail() 发送邮件函数,但是较为繁琐:建议上网下载一个PHPMailer:
- Oracle解锁的相关操作(转)
当某个数据库用户在数据库中插入.更新.删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait ...
- Grunt 之 Connect
前端开发 Grunt 之 Connect 在前端开发过程中,我们需要在开发过程中,将开发中的站点部署到服务器上,然后,在浏览器中查看实际的效果,在 Grunt 环境下,可以直接使用集成在 Grunt ...
- Installshield自动安装IIS组件
原文:Installshield自动安装IIS组件 一. 工程类型:IS2010 installscript 二.原理: 1. XP和 Server2003系统:由于系统默认没有自带IIS组件,一般情 ...
- Pro Aspnet MVC 4读书笔记(3) - Essential Language Features
Listing 4-1. The Initial Content of the Home Controller using System; using System.Collections.Gener ...
- Skynumber
Time Limit: 1000ms Memory Limit: 128000KB 64-bit integer IO format: Java class name: Submit Sta ...
- Javascript学习4 - 对象和数组
原文:Javascript学习4 - 对象和数组 在Javascript中,对象和数组是两种基本的数据类型,而且它们也是最重要的两种数据类型. 对象是已命名的值的一个集合,而数组是一种特殊对象,它就像 ...
- UBUNTU如何改变mysql默认文件夹数据文件夹
停止mysql维修 * sudo /etc/init.d/mysql stop 原始文件夹的副本 * cp -r /var/lib/mysql /home/yourname/somewhere 改动权 ...
- Delegate成员变量和Event的区别
上周五有同事问了我一个问题:Delegate和Event有什么区别?具体来说在设计一个类的时候,声明一个事件(Event)和声明一个Delegate类型的成员变量有啥区别. 我的第一反应是没啥区别 ...
- 【转】Appium测试安卓Launcher以滑动窗体获得目标应用
原文地址:http://blog.csdn.net/zhubaitian/article/details/39755553 所谓Launcher,指的是安卓的桌面管理程序,所有的应用图标都放在laun ...