SSIS中Sql Task 获取系统变量

原文: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 属性。

时间: 2024-09-12 08:12:55

SSIS中Sql Task 获取系统变量的相关文章

php获取系统变量方法小结

  本文实例讲述了php获取系统变量的方法.分享给大家供大家参考.具体如下: 这里通过一些php内置函数获得各种系统变量. ? 1 2 3 4 5 6 7 8 9 $v = get_defined_vars();//返回由所有已定义变量所组成的数组 print_r($v); // get all defined objects $v = get_object_vars();//返回由对象属性组成的关联数组 print_r($v); // classic phpinfo();//输出关于 PHP

php获取系统变量方法小结_php技巧

本文实例讲述了php获取系统变量的方法.分享给大家供大家参考.具体如下: 这里通过一些php内置函数获得各种系统变量. $v = get_defined_vars();//返回由所有已定义变量所组成的数组 print_r($v); // get all defined objects $v = get_object_vars();//返回由对象属性组成的关联数组 print_r($v); // classic phpinfo();//输出关于 PHP 配置的信息 // php版本 (someth

Android系统中使用shareuserid获取系统权限的教程_Android

Android会为每个apk进程分配一个单独的空间(比如只能访问/data/data/自己包名下面的文件),一般情况下apk之间是禁止相互访问数据的.通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的数据库和文件.就像访问本程序的数据一样(使用IPC机制,不同进程之间,比如AIDL). 一.使用同一个shareuserid,多个apk运行到同一

Android系统中使用shareuserid获取系统权限的教程

Android会为每个apk进程分配一个单独的空间(比如只能访问/data/data/自己包名下面的文件),一般情况下apk之间是禁止相互访问数据的.通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的数据库和文件.就像访问本程序的数据一样(使用IPC机制,不同进程之间,比如AIDL). 一.使用同一个shareuserid,多个apk运行到同一

php 中常用的环境系统变量

PHP环境变量主要有$GLOBALS[].$_SERVER[].$_GET[].$_POST[].$_COOKIE[].$_FILES[].$_ENV[].$_REQUEST[].$_SESSION[].$_GET和$_POST主要针对FORM表单提交的数据,$_COOKIE和$_SESSION主要针对客户端游览器和服务器端会话数据.$_FILES主要针对文件上传时提交的数据,$_REQUEST主要针对提交表单中所有请求数组,包括$_GET.$_POST.$_COOKIE中的所有内容,你可以通过

sql server 获取系统时间的方法_MsSql

Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONV

sql server 获取系统时间的方法

Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONV

详解Java获取环境变量及系统属性的方法_java

环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会有一些不统一的地方, 比如说: 不区分大小写 等等. Java 获取环境变量Java 获取环境变量的方式很简单: System.getEnv()  得到所有的环境变量 System.getEnv(key) 得到某个环境变量的值   Map map = System.getenv(); Iterator i

SQL2005-深入了解SSIS中记录集的应用

sql2005|记录集 SQL2005-深入了解SSIS中记录集的应用 在本文,我将介绍如何产生记录集,并将利用记录集中的行和列干某些事情,比如当你想基于行遍历执行某项操作,这是非常有用的 产生记录集非常简单了,上文<SSIS中ExecuteSQL TASK组件>中就介绍了 好了,现在开始我们的准备工作 1.现在我们定义4个变量 ClosureDate 日期型数据 ,初始值为1/12/1999 Contactname 字符串型 emailaddress 字符串型 rsDetails 对象型 这