OLE DB 目标
OLE DB 目标用数据库表或视图或者用 SQL 命令,将数据加载到各种符合 OLE DB 的数据库中。例如,OLE DB 源可以将数据加载到 Microsoft Office Access 和 SQL Server 数据库的表中。
注意 |
---|
如果数据源是 Microsoft Office Excel 2007,则数据源需要一个不同于早期版本 Excel 的连接管理器。有关详细信息,请参阅如何连接到 Excel 工作簿。 |
OLE DB 目标为数据加载提供了五种数据访问模式:
表或视图。可以指定现有的表或视图,也可以创建新表。
使用快速加载选项的表或视图。可以指定现有的表或者创建新表。
变量中指定的表或视图。
使用快速加载选项在变量中指定的表或视图。
SQL 语句的运行结果。
注意 |
---|
OLE DB 目标不支持参数。如果需要执行参数化 INSERT 语句,请考虑使用 OLE DB 命令转换。有关详细信息,请参阅 OLE DB 命令转换。 |
当 OLE DB 目标加载使用双字节字符集 (DBCS) 的数据时,如果没有使用快速加载选项的数据访问模式,并且 OLE DB 连接管理器使用 Microsoft OLE DB Provider for SQL Server (SQLOLEDB),则该数据可能会被损坏。为了确保 DBCS 数据的完整性,您应将 OLE DB 连接管理器配置为使用 SQL Server Native Client 或使用以下任意一种快速加载访问模式:**“表或视图 – 快速加载”或“表名称或视图名称变量 – 快速加载”这两个选项都可以在“OLE DB 目标编辑器”**对话框中使用。编写 SSIS 对象模型的程序时,应当将 AccessMode 属性设置为 OpenRowset Using FastLoad 或 OpenRowset Using FastLoad From Variable。
注意 |
---|
如果用 SSIS 设计器中的“OLE DB 目标编辑器”对话框创建 OLE DB 目标要向其插入数据的目标表,可能需要手动选择新创建的表。当 OLE DB 访问接口(如 OLE DB Provider for DB2)自动将架构标识符添加到表名称时,需要进行手动选择。 |
注意 |
---|
“OLE DB 目标编辑器”对话框生成的 CREATE TABLE 语句可能需要修改,具体取决于目标类型。例如,某些目标不支持 CREATE TABLE 语句所使用的数据类型。 |
此目标使用 OLE DB 连接管理器连接数据源,该连接管理器指定要使用的 OLE DB 访问接口。有关详细信息,请参阅 OLE DB 连接管理器。
Integration Services 项目还提供了可从中创建 OLE DB 连接管理器的数据源对象,使数据源和数据源视图可用于 OLE DB 目标。有关详细信息,请参阅数据源 (SSIS)和数据源视图 (SSIS)。
OLE DB 目标包括输入列和目标数据源中的列之间的映射。您不必将输入列映射到所有目标列,但有时如果没有将输入列映射到目标列可能会出错,具体取决于目标列的属性。例如,如果目标列不允许出现 Null 值,则必须将输入列映射到该列。另外,映射列的数据类型必须是兼容的。例如,不能将数据类型为字符串的输入列映射到数据类型为数值的目标列。
OLE DB 目标具有一个常规输入和一个错误输出。
有关数据类型的详细信息,请参阅 Integration Services 数据类型。
快速加载选项
如果 OLE DB 目标使用快速加载数据访问模式,则可以在用户界面**“OLE DB 目标编辑器”**中为目标指定以下快速加载选项:
保持导入数据文件的标识值或使用由 SQL Server 分配的唯一值。
在大容量加载操作过程中保留 Null 值。
在大容量导入操作过程中检查目标表或视图的约束。
在大容量加载操作期间获取表级锁。
指定批中的行数和提交大小。
某些快速加载选项存储在 OLE DB 目标的特定属性中。例如,FastLoadKeepIdentity 指定是否保持标识值,FastLoadKeepNulls 指定是否保持 Null 值,而 FastLoadMaxInsertCommitSize 则指定作为批提交的行数。其他快速加载选项则存储在 FastLoadOptions 属性内的以逗号分隔的列表中。如果 OLE DB 目标使用存储于 FastLoadOptions 中并在**“OLE DB 目标编辑器”**对话框中列出的所有快速加载选项,则该属性的值将设置为 TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000。值 1000 指示已将目标配置为使用 1000 行组成的批。
注意 |
---|
目标中任何约束失败都将导致 FastLoadMaxInsertCommitSize 所定义的整批行失败。 |
除了在**“OLE DB 目标编辑器”对话框中公开的快速加载选项以外,还可以通过在“高级编辑器”**对话框的 FastLoadOptions 属性中键入选项,将 OLE DB 目标配置为使用以下大容量加载选项。
快速加载选项 |
说明 |
---|---|
KILOBYTES_PER_BATCH |
指定要插入的大小 (KB)。选项的格式为 KILOBYTES_PER_BATCH = <正整数值>。 |
FIRE_TRIGGERS |
指定是否在插入表上激发触发器。选项的格式为 FIRE_TRIGGERS。出现该选项说明要激发触发器。 |
ORDER |
指定输入数据如何排序。选项格式为 ORDER <列名称> ASC|DESC。可以列出任何列数,是否包括排序顺序是可选的。如果省略排序顺序,则插入操作假定数据不排序。
注意
如果使用 ORDER 选项根据表中的聚集索引对输入数据排序,则性能可以得到提高。有关 ORDER 选项的重要性的详细信息,请参阅控制大容量导入数据时的排序顺序。
|
Transact-SQL 关键字传统上采用大写字母键入,但并不区分大小写。
若要了解快速加载选项的详细信息,请参阅BULK INSERT (Transact-SQL)。
OLE DB 目标故障排除
可以记录 OLE DB 目标对外部数据访问接口所做的调用。利用此日志记录功能,可以对 OLE DB 目标在执行将数据保存到外部数据源的操作进行故障排除。若要记录 OLE DB 目标对外部数据访问接口所做的调用,请在包级别启用包日志记录并选择**“诊断”**事件。有关详细信息,请参阅包执行故障排除。
配置 OLE DB 目标
可以通过 SSIS 设计器或以编程方式来设置属性。
有关可在**“OLE DB 目标编辑器”**对话框中设置的属性的详细信息,请单击下列主题之一:
**“高级编辑器”对话框反映了可以通过编程方式进行设置的属性。有关可以在“高级编辑器”**对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:
有关如何设置属性的详细信息,请单击下列主题之一:
|