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-10-28 16:09:26

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

java 获取系统变量(环境变量和设置变量)

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

[转]SSIS Execute SQL Task : Mapping Parameters And Result Sets

本文转自:http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-result-sets.aspx#.U18_6PmSxBk A very common scenario in an ETL process is one in which you need to call out to some configuration tables to figure out so

五十九、SAP中常用预定义系统变量

一.SAP中常用预定义系统变量 内容如下: 二.系统变量定义在结构SYST里,我们打开SE38 三.在代码编辑器输入SYST变量 四.双击SYST,来到这个系统结构,里面有很多系统变量 五.我们随便写几个试试 六.显示界面如下 原文地址:https://www.cnblogs.com/tianpan2019/p/11221789.html

SSIS Execute SQL Task 用法

Execute Sql Task组件是一个非常有用的Control Flow Task,可以直接执行SQL语句,例如,可以执行数据更新命令(update,delete,insert),也可以执行select查询语句,返回结果集,结果集可以是一行,也可以是多行. 一,General 选项卡 1,返回结果集(Result Set) None:表示不返回结果,在执行Update,delete或insert命令时,使用该选项: Single row:返回单行结果,可以在Result Set 选项卡中,将

Execute SQL Task 参数和变量的映射

Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用不同的符号(Parameter marker)来标记一个参数,并且在Parameter Mapping中设置参数名字(Parameter Name). 在Execute SQL Task Editor中,设置Parameter Mapping的界面如下: Variable Name:变量的名字,变量

PHP中sql语句如何使用变量

SQL语句变量问题 先讲下单引号和双引号的问题 ''单引号 php会把它里面的内容当成字符串来处理. ""双引号 php会根据里面的值来处理.比如里面有变量 那么变量的值就会把变量替换. 例子 <?php $a='Hello Word!'; echo '$a'; echo "$a"; //这两个输出的结果是不一样的 //第一个输出就是$a //第二个输出Hello Word! //数据库查询例子: $username='admin'; $sql="s

CAD系统变量(参数)大全

所谓系统变量就是一些参数,这些参数有些是可以在“选项”或其他对话框中进行设置的,有些这必须通过在命令行输入变量名进行设置,当然对于高手来说,还可以通过二次开发程序来进行控制. CAD有很多的变量,例如fill或fillmode控制填充的显示,attmode控制块属性的显示,等等,了解一些常用的系统变量,当你的图纸出现一些问题时,你可以对出现问题的原因有些初步的判断,并可以通过修改变量设置快速解决.在CAD(无论是AUTOCAD还是浩辰CAD等其他CAD)的帮助中通常有可以系统变量的介绍,随时到帮

windows 用户变量和系统变量的区别

点击"我的电脑→属性→高级系统设置"标签的"环境变量"按钮,出现"环境变量"对话框,如果当前是以Administrator登录系统的用户,对话框的上面为Administrator的用户变量,对话框的下面为系统变量(即相当于系统中所有用户的用户变量).有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量,比如path,那么path的值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是.path变量的值是用户变量中的值

MySQL系统变量

在数据库中,变量分为系统变量(以'@@'开头)以及用户自定义变量.系统变量分为全局系统变量以及会话系统变量,静态变量属于特殊的全局系统变量. 全局系统变量(global)和会话系统变量(session),有时也把全局系统变量称为全局变量,把会话系统变称为local变量或者系统会话变量.Mysql服务成功启动后,如果没有mysql客户机连接mysql服务器,那么mysql服务器内存中的系统变量全部是全局系统变量. 每个mysql客户机成功连接mysql服务器后,都会产生与之对应的会话.会话期间,没