OLE DB 命令转换

更新日期: 2006 年 12 月 12 日

OLE DB 命令转换对数据流中的每一行运行一条 SQL 语句。例如,您可以运行 SQL 语句以在数据库表中插入、更新或删除行。

可以按下列方式配置 OLE DB 命令转换:

  • 提供转换为每一行所运行的 SQL 语句。
  • 指定一个秒数,到此秒数该 SQL 语句即告超时。
  • 指定默认的代码页。

通常,所运行的 SQL 语句会包含一些参数。参数值存储在转换输入的外部列中,将输入列映射到外部列便可将输入列映射到参数。例如,若要按 ProductKey 列中的值在 DimProduct 表中查找行,然后删除这些行,可将名为 Param_0 的外部列映射到名为 ProductKey 的输入列,然后再运行 SQL 语句 DELETE FROM DimProduct WHERE ProductKey = ?。OLE DB 命令转换提供参数的名称,这些参数名不可修改。参数名的形式为 Param_0Param_1 等,依此类推。

如果使用**“高级编辑器”对话框配置 OLE DB 命令转换,单击“刷新”**按钮便可将 SQL 语句中的参数自动映射到转换输入中的外部列,并定义每个参数的特征。但是,如果 OLE DB 命令转换所使用的 OLE DB 访问接口不支持从参数派生参数信息,则必须手动配置外部列。这意味着对每个参数,必须在转换的外部输入中添加一列,用类似 Param_0 的名称更新列名,指定 DBParamInfoFlags 属性的值,并将包含参数值的输入列映射到这些外部列。

DBParamInfoFlags 的值表示参数的特征。例如,值 1 指定参数为输入参数,而值 65 则指定参数为输入参数,且可能包含空值。该值必须与 OLE DB DBPARAMFLAGSENUM 枚举中包含的值相匹配。有关详细信息,请参阅 OLE DB 参考文档。

OLE DB 命令转换包括 SQLCommand 自定义属性。加载包时,可以通过属性表达式更新此属性。有关详细信息,请参阅 Integration Services 表达式参考在包中使用属性表达式Transformation Custom Properties

此转换有一个输入、一个常规输出和一个错误输出。

OLE DB 命令转换故障排除

如果是在 Microsoft SQL Server 2005 Service Pack 2 (SP2) 中启动,则能够记录 OLE DB 命令转换对外部数据访问接口所做的调用。您可以使用这项新的日志记录功能,对 OLE DB 命令转换执行的对外部数据源的连接和命令进行故障排除。若要记录 OLE DB 命令转换对外部数据访问接口所做的调用,请在包级别启用包日志记录并选择**“诊断”**事件。有关详细信息,请参阅包执行故障排除

配置 OLE DB 命令转换

可以通过 SSIS 设计器或以编程方式来设置属性。

有关可以在**“高级编辑器”**对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:

有关如何设置属性的详细信息,请单击下列主题之一:

请参阅

概念

创建包数据流
Integration Services 转换

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 添加了有关 SQL Server 2005 SP2 如何包括新日志记录消息的信息。使用这些消息,用户可以对此转换对外部数据访问接口所做的调用进行故障排除。

2005 年 12 月 5 日

新增内容:
  • 添加了有关使用属性表达式来更新 SQLCommand 自定义属性的信息。