`
weiruan85
  • 浏览: 383962 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

load imp 参数

    博客分类:
  • db2
阅读更多
1.出现换行的时候:
   LOAD CLIENT FROM /home/ccp/test.del OF DEL  modified by    delprioritychar  INSERT INTO TEL.test ALLOW NO ACCESS;

   要加上modeified by delprioritychar

2.load 的四种模式:
a. insert 模式将输入数据添加到一个表中,而不更改已有的表数据
b. replace 模式删除表中所有已有的数据,然后用输入数据填充这个表
c. terminate 模式终止装载操作,并回滚到它开始时所在的时间点。一个例外是,如果 指定了replace模式,那么表将被删节。
d. restart 模式用于重新开始之前被中断的装载命令.它将自动从最近的一致点继续.要使用这个模式,可以指定与前一个load命令相同的选项。但是这次加上了restart 。它使实用程序可以发现在装载处理中生成的所有需要的临时表。因此,千万不要手动删除装载命令所生成的任何临时文件,除非您确信不再需要这些临时文件。一旦装载成功完成,这些临时文件将自动被删除。默认情况下,这些临时文件是在当前的工作目录中创建的。也可以使用TEMPFILES PATH 选项指定存放临时文件的目录。

3.load 的格式:
  LOAD FROM input_source OF input_type
  MESSAGES message_file
  [ INSERT | REPLACE | TERMINATE | RESTART ]
  INTO target_tablename

  for example:
    使用cursor装入。
    DECLARE mycursor CURSOR FOR SELECT col1, col2, col3 FROM tab1;
    LOAD FROM mycursor OF CURSOR INSERT INTO newtab;

4.举例
LOAD FROM emp.ixf OF IXF
MESSAGES msg.out
MODIFIED BY DUMPFILE=c:\emp.dmp
TEMPFILES PATH d:\tmp
INSERT INTO employee
FOR EXCEPTION empexp

异常表empexp是使用和employee相同的列,再加上时间戳和消息列创建的.
在装载阶段,输入文件中的所有数据被装载到employee中,由于使用了



关于Import

1.Import模式的介绍

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

2.   批量提交

COMMITCOUNT,保证insert的数据在COMMITCOUNT以后进行一次commit,这对于大数据量的导入文件来说是一个不错的方法,
例:Import from filename of del COMMITCOUNT 50000 insert into tabname;

批量插入

MODIFIED BY COMPOUND把文件中的 COMPOUND 行记录作为一组一起导入,这个操作可以和上边的批量提交一起使用,比较理想。
例:Import from filename of del MODIFIED BY COMPOUND =50 insert into tabname;

4.        导入记录限制

ROWCOUNT:只导入rowcount 条数据,有时候,业务逻辑需要只导入部分数据,那么ROWCOUNT是一个不错的选择,只是在我的测试中ROWCOUNT一直没有起过作用,呵呵,谁熟悉这里,帮我完善下。
例:Import from filename of del ROWCOUNT 10000 insert into tabname;

5.        导入起点

RESTARTCOUNT:从导入文件的第RESTARTCOUNT条记录开始导入
例:Import from filename of del RESTARTCOUNT 55 ROWCOUNT 10000 insert into tabname;--从55条开始,导入10000条数据

6.        有警告数据的条数限制

WARNINGCOUNT:当导入的数据中,有警告或错误(例如类型不匹配,列不对应等造成的)并且条数超过WARNINGCOUNT是就会停止import。
例:Import from filename of del WARNINGCOUNT 10 insert into tabname;

7.        禁止发出行警告

MODIFIED BY NOROWWARNINGS
例:Import from filename of del MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;

8.        LOB 文件

LOBS FROM :指出LOB的路径
例:Import from filename of del LOBS FROM ‘/home’ MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;

9.        对于自增序列(GENERATED ALWAYS)

建议不要对自增序列的表进行import操作,因为import对于自增序列,只有MODIFIED BY  IDENTITYIGNORE和MODIFIED BY IDENTITYMISSING的2中操作,这2中操作都会改变自增序列的原值,这样如果导出表和表之间有基于自增序列的关联关系的话,就失去了数据本身的意义,所以建议尽量少用基于import的自增表的操作,那该怎么做?可以用load老代替import,我们下来在load的操作中会讲到!

关于Load

1. 字符串间隔,列间隔,小数点表示

CHARDEL/COLDEL/DECPT
例:LOAD CLIENT FROM 'F:s1.del' OF DEL MODIFIED BY CHARDEL(COLDEL=   DECPT?  INSERT INTO "DB2ADMIN"."ZXTABLES"

2.数据库记录中存在换行符,导致数据无法装入的情况

MODIFIED BY DELPRIORITYCHAR
Db2默认load优先级策略为,record delimiter, character delimiter, column delimiter,这样record delimiter得优先级最高,所以原始文件如果有换行的话load就认为是新的record,如果用户在某些情况下行里面包含了换行符(比如论坛里面的一条帖子,不可能把换行符删掉的),就必须用delprioritychar改变默认的优先级别,确保""之间的数据不管有没有换行符都被认为是同一条记录
例:LOAD CLIENT  FROM 'F:s1.del' OF DEL MODIFIED BY DELPRIORITYCHAR  INSERT INTO DB2ADMIN.ZXTABLES

3.load后表空间暂挂的处理

Copy YES/ NONRECOVERABLE
对于DMS表空间,load默认为copy NO 模式,此模式下,load完成后,表空间会处于暂挂状态,这时候只能查表中的数据,需要对表空间进行一次备份,才可以对表进行update、insert等操作,那么我们可以使用如上2个命令,对于Copy YES,load完成以后会自动进行一次备份操作;NONRECOVERABLE 指出load不可恢复,此命令符不会产生表空间暂挂,也不会自动进行表空间备份,但是他有一个缺点就是,不能恢复,当数据库进行回滚的时候,不能还原,危险等级还是比较高一点,不过个人觉得也NONRECOVERABLE比较实用。

例:LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES NONRECOVERABLE
LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES COPY YES

4. load IXF类型文件到多分区数据库

partitioned db configmode load_only_verify_part part_file_location

当数据在2个不同数量节点的数据库之间移动,如果还想使用load来进行IXF的数据装载就比较棘手了,当时查遍IBM的官方文档均无所获,正郁郁不安时,狼出现了,给支了一招,现分享给大家。
首先,把ixf文件复制和分区数量相同的文件,并后缀.000(分区号),
比如,2个分区,那么我需要把原来的a.ixf,拷贝2个,并命名为a.ixf.000以及a.ixf.001
然后,load from staff.ixf of ixf replace into t1 partitioned db configmode load_only_verify_part part_file_location xxxx(part_file_location为a.ixf.000所在的目录),当然如果在unix下的话,可以通过ln –s 来做一个连接也行。

5. 对于自增序列(GENERATED ALWAYS)

MODIFIED BY IDENTITYOVERRIDE:此参数可以理解为,采用文件load文件中的自增值做为表自增序列的值,这样就能保证对于自增序列有业务意义,或者关联逻辑(主外键关联)的情况下保证数据的一致,个人对此命令屡试不爽

例:  LOAD CLIENT FROM 'F:s1.del' OF DEL MODIFIED BY IDENTITYOVERRIDE INSERT INTO DB2ADMIN.ztables;

6. 对于自增序列(GENERATED by default)

GENERATED by default可以直接通过一般的导入方式加载数据,不过有时候会有一点点小问题,自增序列没有进行分配,也就是说,原来表有50条记录,自增序列的下一次分配值为50,当你已经导入了1000条记录进去了,然后发现自增序列的下一次分配值还是为50,这种事不经常发生,但是偶尔会发生一次,比较郁闷的是,当表继续插入数据的时候,下一次分配就会发生冲突,尤其是如果自增建为主键的时候,会违反唯一约束。
解决办法:首先找到这个序列分配的最大值,select max(id) from tablea;
然后用下边这个命令,alter table tablea alter column restart  with max(id)+1

7.
ROWCOUNT/WARNINGCOUNT
  这个同IMPORT

8.terminate,restart

如果load的过程中出了点故障,比如连接被force掉了等,这时连接查询表数据会报错SQL0668N,原因码3,这时可以通过带有terminate的load命令来进行处理!
LOAD CLIENT FROM 'F:s1.del' OF DEL terminate INTO DB2ADMIN.ztables;

9. set integrity 命令

如果表上有约束,那么给表load数据以后,一般连接表的时候都会报错,SQL0668N,原因码1,这说明该表处于“设置完整性暂挂无访问”状态,那么需要如下命令来操作。

Set integrity for schema.tablename immediate checked;

10.提高导入导出速度的数据库参数

CONFIGURATION:应用程序堆大小,该参数指示可由Backup,restore,load及装入恢复应用程序同事使用的最大内存量,看帖子上有介绍,这个值可以设置为10000*cpu数量。
db2_all "DB2 UPDATE DATABASE CONFIGURATION USING UTIL_HEAP_SZ 113486"



分享到:
评论

相关推荐

    Oracle-data-imp-exp.rar_oracle_oracle exp imp

    3. **数据泵作业控制**:`DIRECTPATH_PARALLEL_LOAD`参数可以启用并行加载,提高导入速度。 4. **冲突处理**:`EXCLUDE`和`INCLUDE`参数可以控制是否忽略或包含某些对象,避免导入时的冲突。 在实际操作中,通常会...

    Oracle GoldenGate ogg数据复制技术教程

    1.goldengate概述、复制模式和技术架构.pdf 2.GoldenGate安装和进程讲解.pdf... 11.goldengate目录、进程和常用参数说明.pdf 12.使用ggsci监控GoldenGate.pdf 13-GoldenGate日常维护.mp4 13.GoldenGate日常维护.pdf

    MATLAB 生成高斯噪声wgn函数.pdf

    * IMP:load impedance in Ohms * STATE:随机数生成器的状态 * POWERTYPE:指定P的单位,可以是'dBW'、'dBm'或'linear' * OUTPUTTYPE:指定输出类型,可以是'real'或'complex' 函数示例 1. 生成一个1024行1列的...

    TVPVAR-新.zip

    标题中的"TVPVAR"代表时间变异性参数(Time-Varying Parameter)模型,这是一种在经济学和金融学中广泛使用的统计模型。它允许模型参数随着时间变化,以更好地捕捉数据的动态特性。MATLAB是一种强大的编程环境,特别...

    odbccp32出现版本错误的解决方法

    参数"/s"表示静默模式,它会隐藏常规的注册成功消息,使得操作更加简洁。 5. **确认注册**:成功注册后,系统应能识别新的ODBCCP32.dll版本。重启计算机,以确保所有更改生效,并检查问题是否已解决。 6. **故障...

    Win OGG数据库复制及初始化

    2. Exp/imp是否正常:对于目标数据库初始化很重要,需要确保Exp/imp工具能够正常工作。 3. 在应用运行时是否有DDL语句操作:在同步时需要禁用源库的DDL操作,以免影响数据库同步的结果。 二、OGG软件安装和配置 1....

    CAD快捷键自定义设置及编辑程序参数修改推荐.pdf

    5. `AP` - `APPLOAD`:加载应用程序,用于引入外部插件或工具。 6. `ADC` - `ADCENTER`:AutoCAD设计中心,访问和管理库中的图形、块和线型。 7. `ATT` - `ATTDEF`:块属性定义,创建或编辑块的属性。 8. `ATE` - `...

    Oracle备份与恢复总结

    - **加快imp速度:** 使用`direct=y`参数;预处理数据,如清理目标表或创建索引。 - **通过unix/Linux PIPE管道加快exp/imp速度:** 使用管道而非文件传输数据,减少I/O操作。 - **全库导入的一般步骤:** 1. 停止...

    oracle数据库备份与恢复总结

    - 加快IMP速度:使用`direct=true`参数进行直接路径导入。 - 通过管道加速:利用UNIX/Linux管道提高效率。 **8. 全库导入步骤** - 检查源数据库和目标数据库的兼容性。 - 导入前的准备,如创建用户、调整参数...

    error LNK2019: 无法解析的外部符号 问题的解决办法

    根据提供的文件内容,错误信息中提到了多个函数的链接问题,如`__imp__WSASetLastError@4`、`__imp__inet_ntoa@4`等,这些都是在Windows网络编程中常用的API函数。错误代码LNK2019后面的数字代表的是错误发生的行号...

    关于 Oracle 的数据导入导出及 Sql Loader (sqlldr)

    Oracle提供了多种数据导入导出工具,包括`expdp`(Export Data Pump)和`impdp`(Import Data Pump)以及传统的`exp`和`imp`。Data Pump工具提供了更快的速度和更大的灵活性,支持并行处理和直接路径加载,适用于大...

    Oracle数据库备份与恢复总结

    - `imp username/password [参数]` **1.2 高级选项** - **分割成多个文件**: 可以通过`file`参数指定多个文件名。 - 示例: `exp system/pass file=d:\data1.dmp,d:\data2.dmp` - **增量导出/导入**: 使用`...

    matlab主要函数.docx

    - **参数设置**:可以设置图形的颜色、线条样式、标记符号等。 - **辅助操作**:包括添加图例、调整坐标轴、设置标题和文字等。 - **二维绘制**:MATLAB支持线图、散点图、柱状图等多种二维图形绘制。 - **...

    oracle文本导入导出工具-ozoradts

    Import采用直接路径方式,等同于sqlldr的Direct方式导入(DIRECT=TRUE),nolog参数等同于sqldr的UNRECOVERABLE参数 ozoradts -exp userid=test/test@oradb columnover=";" query="select * from fct_serv_product_...

    Oracle 数据库备份与恢复总结.pdf

    - **加快imp速度**: 同样可以通过`parallel`参数加速导入过程。 - **通过unix/LinuxPIPE管道加快exp/imp速度**: 利用管道直接连接导出和导入操作,避免磁盘I/O操作。 - **全库导入的一般步骤**: 包括创建用户、授予...

    Python-MobileNetV2在pytorch中的实现

    只需调用`torch.hub.load()`函数,传入模型名和预训练标志即可。 5. **训练和优化**: 对于自定义的数据集,需要编写数据加载器(`torch.utils.data.DataLoader`)来处理输入数据。训练过程中,可以选择适合图像...

    sqlldr例子

    LOAD DATA INFILE 'customers.csv' INTO TABLE customers FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( id CHAR(10), name VARCHAR2(50), address VARCHAR2(100) ) ``` 上述控制...

    2021-2022计算机二级等级考试试题及答案No.13020.docx

    17. 窗体事件Load、Unload、Activate:窗体事件Load是窗体加载时触发,Unload是窗体卸载时触发,Exit不是窗体事件,而是程序退出事件。 18. 表记录占用的字节数:这个学生表共有100条记录,每条记录包括姓名(8字节)...

    crs-port.tar.gz

    5. **导入(Import)**:使用`redis-cli`的`LOADDATA`命令加载RDB文件,或者通过`redis-server`配置文件的`dbfilename`选项指定RDB文件位置,在启动时自动加载。 如果`crs-port`是自定义工具,可能还包括了自动化...

Global site tag (gtag.js) - Google Analytics