`

DB2 Import实用程序

    博客分类:
  • DB2
阅读更多

     IMPORT 实用程序用一个输入文件将数据填充到一个表中,输入文件的文件类型可以是 ASCDELIXF WSF。目标是一个表、一个类型化表(typed table)或者一个视图。但是,不能导入到系统表、临时表和物化查询表。建议使用 MESSAGES 子句,以便记录错误、警告和包含有用信息的消息。
     要想成功地导入数据,必须拥有 SYSADM
DBADM 权限,或者目标表或数据库上的底层特权(SELECTINSERTCONTROL CREATETAB),这取决于使用什么选项。为了将数据导入到一个包含受保护的行和列的表中,必须拥有允许对表中所有受保护数据进行写访问的 LBAC 凭证。此外,将数据导入包含受保护行的表时,要求您的 LBAC 凭证是保护表的安全策略的一部分。
下面显示的 IMPORT 命令具有五个不同的选项:
IMPORT FROM file_name OF file_type
    MESSAGES message_file
    [ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ]
    INTO target_table_name
                


     INSERT
选项将导入的数据插入表中。目标表必须已经存在。 
     INSERT_UPDATE
将数据插入表中,或者更新表中具有匹配主键的行。目标表必须已经存在,并且定义了一个主键。 
     REPLACE
选项删除所有已有的数据,并将导入的数据插入到一个已有的目标表中。 
     使用 REPLACE_CREATE 选项时,如果目标表已经存在,则导入实用程序删除已有的数据,并插入新的数据,就像 REPLACE 选项那样。如果目标表还没有定义,那么首先创建这个表以及它的相关索引,然后再导入数据。正如您可能想像的那样,输入文件必须是 PC/IXF 格式的文件,因为那种格式包含对导出表的结构化描述。如果目标表是被一个外键引用的一个父表,那么就不能使用 REPLACE_CREATE 
     CREATE
选项首先创建目标表和它的索引,然后将数据导入到新表中。该选项惟一支持的文件格式是 PC/IXF。还可以指定新表所在表空间的名称。
例子:
    IMPORT FROM emp.ixf OF IXF
    MESSAGES msg.out
    CREATE INTO employee IN datatbsp INDEX IN indtbsp

IMPORT
选项
     IMPORT
基本上是用于成批插入数据的一个实用程序。这种成批插入操作就像一般的插入语句一样,也涉及到活动的日志记录、索引的更新、参照完整性检查和表约束检查。默认情况下,IMPORT 只在操作结束时提交一次。如果将大量的行一次性导入或插入到表中,那么需要有足够的事务记录用于回滚和恢复。此外也可以采用周期性的提交,以防日志写满。通过定期地提交插入,还可以减少导入操作期间出现失败时丢失的行数。COMMITCOUNT 选项规定在导入一组记录后强制执行 COMMIT。还可以指定 AUTOMATIC 选项,该选项允许导入实用程序在内部决定何时需要执行提交。该实用程序将考虑发出一个提交命令,以避免日志写满或者避免
升级。

restartcount 100 将从第101条记录开始,method p (1,2,4)导入ixf文件中的第一,二,四列.

下面是关于如何使用 COMMITCOUNT 选项的一个例子:
IMPORT FROM myfile.ixf OF IXF method p (1,2,4)
    COMMITCOUNT 500 restartcount 100
    MESSAGES msg.out
    INSERT INTO newtable


     如果由于某种原因导致以上命令在执行期间遭到失败,那么可以使用消息文件来确定成功导入且已提交的最后一行。然后,可以使用 RESTARTCOUNT 选项重新开始导入。注意,SKIPCOUNT 选项的行为与 RESTARTCOUNT 是相同的。在下面的命令中,该实用程序在开始 IMPORT 操作之前,将忽略前 30,000 条记录。
    IMPORT FROM myfile.ixf OF IXF
    COMMITCOUNT 500 RESTARTCOUNT 30000 ROWCOUNT 100000
    MESSAGES msg.out
    INSERT INTO newtable


     注意,这个例子中还使用了 ROWCOUNT 选项。该选项指定要导入的物理记录的条数。由于使用了 RESTARTCOUNT 选项,导入实用程序将忽略前 30,000 条记录,并且将剩下的 100,000 条记录导入到表中。
     默认情况下,在插入任何行之前,导入实用程序将获得目标表上的一个排它锁。一旦导入完成,这个排它锁将被释放。这是 ALLOW NO ACCESS 选项的行为。为了允许
并发应用程序访问表数据,可以使用 ALLOW WRITE ACCESS 选项。注意,该选项与 REPLACECREATE REPLACE_CREATE 导入选项不兼容。下面是关于 ALLOW WRITE ACCESS 选项的一个例子。
IMPORT FROM myfile.ixf OF IXF
    ALLOW WRITE ACCESS
    MESSAGES msg.out
    INSERT INTO newtable

 

xmlpath
    XMLPARSE PRESERVE WHITESPACE
    MESSAGES msg.out
    INSERT INTO newtable


     当插入或更新一个 XML 文档时,您可能想确定 XML 文档的结构、内容和数据类型是否有效。导入实用程序还通过 XMLVALIDATE 选项提供了对 XML 验证的支持。下面是可用的三种方法。
USING XDS ——
回想一下,您可以导出 XML 模式信息并将它存储在 XML Data Specifier XDS) 的 SCH 属性中。SCH 属性的值将用于执行验证。如果在 XDS 中没有 SCH 属性,则考虑 DEFAULTIGNORE MAP 三者之中的一个值。
USING SCHEMA schema-
sqlid —— 使用这个子句中指定的 XML 模式。
USING SCHEMALOCATION HINTS ——
根据源 XML 文档中 XML 模式位置提示所标识的模式来验证 XML 文档。
IMPORT FROM myfile.ixf OF IXF
    XML FROM d:\xmlpath
    XMLPARSE PRESERVE WHITESPACE
    XMLVALIDATE USING XDS
        DEFAULT S1.SCHEMA_A
        IGNORE (S1.SCHEMA_X, S1.SCHEMA_Y, S1.SCHEMA_Z)
        MAP (S1.SCHEMA_A, S1.SCHEMA_B)
    COMMITCOUNT 500 RESTARTCOUNT 30000
    MESSAGES msg.out
    INSERT INTO newtable

前面的 IMPORT 命令将:
     插入 myfile.ixf d:\xmlpath 下的 XML 文件中的数据。 
     当解析 XML 文档时,保留空白。 
     使用 XDS SCH 属性标识的模式信息对每个 XML 文档进行验证。但是,如果用于任何特定行的 XDS 没有包含 SCH 属性,那么使用 S1.SCHEMA_A 
     如果 SCH 属性被指定为 S1.SCHEMA_X S1.SCHEMA_Y S1.SCHEMA_Z,那么对于导入的 XML 文档不执行验证。 
     如果 SCH 属性被指定为 S1.SCHEMA_A,它将被映射到 S1.SCHEMA_B。注意,尽管 DEFAULT 子句指定了 S1.SCHEMA_A,但是后面的任何映射都将不会执行。 
     每导入 500 行之后,导入实用程序将发出一次提交命令。 
     导入操作从第 30,001 条记录开始。前 30,000 条记录被忽略。 
     任何错误、警告和包含信息的消息都写到 msg.out 文件中。 
     将新数据插入(或附加)到 newtable 中。 
     这个例子只是让您对如何验证导入的 XML 文档有一些认识。DB2 Information Center 中还有更多的例子来演示 XMLVALIDATE 选项的威力。



 


文件类型修饰符
     IMPORT
实用程序还支持五种文件类型修饰符来定制导入操作。在 DB2 Command Reference IMPORT 小节下有这些修饰符的一个完整的列表。下面列出了其中一些修饰符:
     compound=x 
     使用非原子复合 SQL 插入数据。x 是每次将尝试的语句数量。 
     indexschema=schema 
     使用索引创建期间指定的用于索引的模式。 
     striptblanks 
     将数据装载到可变长度字段时,截去结尾空白。 
     lobsinfile 
     表明将导入 LOB 数据。导入实用程序将检查 LOBS FROM 子句,以获得输入 LOB 文件的路径。 
     下面是使用这些文件类型修饰符的一个例子:
    IMPORT FOR inputfile.asc OF ASC
    LOBS FROM /u/db2load/lob1, /u/db2load/lob2
    MODIFIED BY compount=5 lobinsfile
    INSERT INTO newtable
导入 XML 数据
     为了导入 XML 文件,可以使用 XML FROM 选项指定 XML 文件所在的一个或多个路径。否则,导入实用程序将在当前目录中查找 XML 文件。您可以选择如何解析 XML 文档;是去掉空白还是保留空白。如果没有指定 XMLPARSE 选项,那么将根据 CURRENT XMLPARSE OPTION 专用寄存器来决定对 XML 文档的解析行为。下面是关于 XML FROM XMLPARSE 选项的一个例子。
IMPORT FROM myfile.ixf OF IXF
    XML FROM d:\

export to org.del of del modified by coldel;select * from org

 

文件类型修饰符modified by 

COLDELx:使用字符x作为输出中的列分隔符.默认值是逗号.

CHARDELx:使用字符x作为输出中的字符串分隔符.默认值是双引号.

DECPTx:使用字符x作为默认的十进制的点.默认值是句号

 

分享到:
评论

相关推荐

    db2数据移动实用程序指南和参考

    ### DB2 数据移动实用程序指南和参考 #### 概述 DB2 数据移动实用程序是IBM为DB2数据库设计的一套工具集,主要用于在不同场景下进行数据迁移、装载及归档等操作。该工具集主要包括两个核心命令:`EXPORT` 和 `...

    DB2应用经验和DB2基本问题总结

    根据所提供的文件内容,我们将深入探讨DB2数据库管理系统中的一些基础且实用的操作命令,并对其应用场景进行详细解析。 **1. 启动与停止数据库** - **启动数据库**: `db2start` - **说明**: 用于启动本地或远程...

    db2实用资料

    这篇文档将深入探讨DB2的实用操作,包括常用命令、导入导出、备份策略等关键知识点。 一、DB2常用命令 1. 数据库连接:`db2 connect to <database_name>`,断开连接使用`db2 disconnect all`。 2. 查询数据库信息...

    DB2常用的命令

    - **示例**: 从`C:\dftz.txt`导入数据到表`dftz`,每5000条记录提交一次,并将日志信息保存到`C:\dftz.msg`,执行`db2 import to C:\dftz.txt of del commit count 5000 messages C:\dftz.msg insert into dftz`。...

    DB2 数据库常用命令

    在DB2中,`RUNSTATS`是一个重要的实用程序,用于收集表和索引的统计信息,这些信息对优化查询计划和提高查询性能至关重要。当数据库的大小或数据分布发生变化时,运行`RUNSTATS`可以确保数据库管理系统(DBMS)拥有...

    MOVING DATA ACROSS DB2 FAMILY.pdf

    - **Import实用程序**:与Export相对应,用于将数据重新导入数据库,支持多种数据格式。 ### 四、高性能量卸载和新加载技术 除了上述标准工具外,IBM还提供了High Performance Unload和Load from Cursor等高级功能...

    DB2命令大全

    - `db2 "import from <文件名> of del modified by col del | insert into <表名>"`:从文件导入数据,并根据指定的列进行修改后再插入表中。 2. **导出数据** - `db2 "export to <文件名> of del select * from...

    java连接DB2数据库编程简介

    本篇文章将深入探讨如何使用Java来连接并操作DB2数据库,包括基本的连接步骤、所需的库以及实用示例。 首先,要进行Java与DB2的连接,你需要JDBC(Java Database Connectivity)驱动,这是Java标准版的一部分,它...

    Db2中的常用命令和导入导出

    ### DB2中的常用命令与导入导出...这些命令涵盖了数据库的管理、数据的查询与维护等方面,对于DB2管理员来说是非常实用的操作技巧。熟练掌握这些命令可以帮助提高数据库管理的工作效率,并确保数据的安全性和完整性。

    DB2学习手册

    ### DB2学习手册知识点概述 #### 一、DB2专有名词解释 1. **Instance(实例):** DB2中的实例是指运行DB2数据库管理系统的单一进程...以上内容提供了关于DB2的深入理解和实用技巧,帮助读者更好地掌握DB2的使用和管理。

    DB2日常处理语句db2命令

    - `db2look` 是一个实用工具,用于生成表、索引、视图等数据库对象的DDL语句,帮助我们重建或更新这些对象的统计信息。 4. **db2move** - `db2move` 是一个数据迁移工具,可以在不同DB2数据库之间移动数据,即使...

    DB2常用命令简介

    2. **导入数据**: `db2import to <file_path> of del commit count 5000 messages <message_file_path> insert into <table_name>` **描述**: 导出表中的数据到文本文件,并将文本文件中的数据导入到数据库表中。 ...

    DB2 常用命令学习资料

    `db2 import from <输入文件路径> of <格式> [commitcount <批次大小>] [messages <日志文件>] [insert | insert_update | replace | create | replace_create] into <表名>` 导入数据到表,选择不同的操作模式...

    DB2常用命令大全

    - **自定义分隔符**:`db2 "import from btpoper.txt of del modified by coldel | insert into btpoper"` - 类似于默认加载,但允许用户自定义数据字段之间的分隔符,在此例中是竖线(`|`)。 - **卸载数据**: ...

    db2常用操作指令 db29命令

    - **导入数据**: `db2 import from myfile ofixf messages msg replace into tb1` #### 15. 数据迁移 - **导出数据库**: `db2 move test export` - **查看数据库定义**: `db2 look -d db_alias -a -e -m -l -x -f ...

    db2数据导入导出,可选择要导的数据

    1. **DB2 的实用工具**:如 `db2import` 和 `db2export`。 2. **SQL 命令**:如 `INSERT`, `SELECT INTO`, `CREATE TABLE AS SELECT` 等。 3. **图形化工具**:如 IBM Data Studio。 #### 三、DB2 数据导入导出命令...

    linux下的DB2命令.doc

    - 导入表数据:`db2import to c:\dftz.txt of del commitcount 5000 messages c:\dftz.msg insert into dftz` 等命令,支持不同的导入选项,如插入、更新、替换或创建新记录。 ### 8. 执行批处理文件与自动化脚本 ...

    DB2 V8数据库基础 V1.0.20060426.doc

    **2.8 db2look**:这是一个实用工具,用于查看和导出数据库模式。 **2.9 Commonprocess**:这部分内容未给出详细解释,可能是指通用处理流程或通用功能。 #### 三、SQL介绍 **3.1 DB2数据类型**:DB2支持多种数据...

    db2指导书

    - **数据导入工具的使用**:利用IMPORT与LOAD实用程序,高效地将数据从文件导入数据库表中,简化数据迁移过程。 - **异常表与状态管理**:创建例外表,监控检查约束与触发器的状态,处理数据导入过程中的异常情况...

Global site tag (gtag.js) - Google Analytics