知识大全 Oracle SQL*Loader 使用指南

Posted 文件

篇首语:爱情不是终点,陪伴才是归宿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle SQL*Loader 使用指南相关的知识,希望对你有一定的参考价值。

Oracle SQL*Loader 使用指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  SQL*Loader是Oracle数据库导入外部数据的一个工具 它和DB 的Load工具相似 但有更多的选择 它支持变化的加载模式 可选的加载及多表加载      如何使用 SQL*Loader 工具    我们可以用Oracle的sqlldr工具来导入数据 例如:  sqlldr scott/tiger control=loader ctl    控制文件(loader ctl) 将加载一个外部数据文件(含分隔符) loader ctl如下:  load data  infile c:\\data\\mydata csv   into table emp  fields terminated by optionally enclosed by   ( empno empname sal deptno )    mydata csv 如下:   Scott Tiger    Frank Naude     下面是一个指定记录长度的示例控制文件 * 代表数据文件与此文件同名 即在后面使用BEGINDATA段来标识数据   load data  infile *  replace  into table departments  ( dept position ( : ) char( )   deptname position ( : ) char( )  )  begindata  COSC PUTER SCIENCE  ENGL ENGLISH LITERATURE  MATH MATHEMATICS  POLY POLITICAL SCIENCE  Unloader这样的工具  Oracle 没有提供将数据导出到一个文件的工具 但是 我们可以用SQL*Plus的select 及 format 数据来输出到一个文件   set echo off newpage space pagesize feed off head off trimspool on  spool oradata txt  select col || || col || || col   from tab   where col = XYZ ;  spool off    另外 也可以使用使用 UTL_FILE PL/SQL 包处理:  rem Remember to update initSID ora utl_file_dir= c:\\oradata parameter  declare  fp utl_file file_type;  begin  fp := utl_file fopen( c:\\oradata tab txt w );  utl_file putf(fp %s %s\\n TextField );  utl_file fclose(fp);  end;  /    当然你也可以使用第三方工具 如SQLWays TOAD for Quest等      加载可变长度或指定长度的记录    如   LOAD DATA  INFILE *  INTO TABLE load_delimited_data  FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY   TRAILING NULLCOLS  ( data   data   )  BEGINDATA   AAAAAAAAAA   A B C D     下面是导入固定位置(固定长度)数据示例   LOAD DATA  INFILE *  INTO TABLE load_positional_data  ( data POSITION( : )   data POSITION( : )  )  BEGINDATA   AAAAAAAAAA   BBBBBBBBBB    跳过数据行     可以用 SKIP n 关键字来指定导入时可以跳过多少行数据 如   LOAD DATA  INFILE *  INTO TABLE load_positional_data  SKIP   ( data POSITION( : )   data POSITION( : )  )  BEGINDATA   AAAAAAAAAA   BBBBBBBBBB    导入数据时修改数据     在导入数据到数据库时 可以修改数据 注意 这仅适合于常规导入 并不适合 direct导入方式 如   LOAD DATA  INFILE *  INTO TABLE modified_data  ( rec_no my_db_sequence nextval   region CONSTANT   time_loaded to_char(SYSDATE HH :MI )   data POSITION( : ) :data /   data POSITION( : ) upper(:data )   data POSITION( : ) to_date(:data YYMMDD )   )  BEGINDATA   AAAAAAAAAA    BBBBBBBBBB     LOAD DATA  INFILE mail_orders txt   BADFILE bad_orders txt   APPEND  INTO TABLE mailing_list  FIELDS TERMINATED BY   ( addr   city   state   zipcode   mailing_addr decode(:mailing_addr null :addr :mailing_addr)   mailing_city decode(:mailing_city null :city :mailing_city)   mailing_state  )    将数据导入多个表     如:  LOAD DATA  INFILE *  REPLACE  INTO TABLE emp  WHEN empno !=   ( empno POSITION( : ) INTEGER EXTERNAL   ename POSITION( : ) CHAR   deptno POSITION( : ) CHAR   mgr POSITION( : ) INTEGER EXTERNAL  )  INTO TABLE proj  WHEN projno !=   ( projno POSITION( : ) INTEGER EXTERNAL   empno POSITION( : ) INTEGER EXTERNAL  )    导入选定的记录     如下例 ( ) 代表第一个字符 ( : ) 代表 到 之间的字符:  LOAD DATA  INFILE mydata dat BADFILE mydata bad DISCARDFILE mydata dis   APPEND  INTO TABLE my_selective_table  WHEN ( ) <> H and ( ) <> T and ( : ) =   (  region CONSTANT   service_key POSITION( : ) INTEGER EXTERNAL   call_b_no POSITION( : ) CHAR  )    导入时跳过某些字段     可用 POSTION(x:y) 来分隔数据 在Oracle i中可以通过指定 FILLER 字段实现 FILLER 字段用来跳过 忽略导入数据文件中的字段 如   LOAD DATA  TRUNCATE INTO TABLE T   FIELDS TERMINATED BY   ( field   field FILLER   field   )    导入多行记录     可以使用下面两个选项之一来实现将多行数据导入为一个记录:    CONCATENATE: use when SQL*Loader should bine the same number of physical records together to form one logical record     CONTINUEIF use if a condition indicates that multiple records should be treated as one Eg by having a # character in column     SQL*Loader 数据的提交     一般情况下是在导入数据文件数据后提交的     也可以通过指定 ROWS= 参数来指定每次提交记录数     提高 SQL*Loader 的性能      ) 一个简单而容易忽略的问题是 没有对导入的表使用任何索引和/或约束(主键) 如果这样做 甚至在使用ROWS=参数时 会很明显降低数据库导入性能      ) 可以添加 DIRECT=TRUE来提高导入数据的性能 当然 在很多情况下 不能使用此参数      ) 通过指定 UNRECOVERABLE选项 可以关闭数据库的日志 这个选项只能和 direct 一起使用      ) 可以同时运行多个导入任务     常规导入与direct导入方式的区别     常规导入可以通过使用 INSERT语句来导入数据 Direct导入可以跳过数据库的相关逻辑(DIRECT=TRUE) 而直接将数据导入到数据文件中 cha138/Article/program/Oracle/201311/18507

相关参考

知识大全 Oracle数据库专享工具:SQL*Loader

Oracle数据库专享工具:SQL*Loader  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!SQ

知识大全 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中

利用SQL*Loader将Excel数据导出到Oracle数据库中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 SQL*Loader

Oracle数据库备份与恢复之二:SQL*Loader  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 简述数据库导入OracleSQL*Loader指南

简述数据库导入OracleSQL*Loader指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 使用SQL Server*Loader进行数据导入

使用SQLServer*Loader进行数据导入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 SQL&Loader可把文件中的数据装载到OR

SQL&Loader可把文件中的数据装载到OR  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 oracle 使用杂记二

  下面的是关于sql*loader的使用的一点总结有些是来自itpub上的一些网友的总结    大部分是oracle专家高级编程上的实例只是我实践以后写的结果    sqlldruserid=lgo

知识大全 SQL 调试指南 - 数据库执行计划(图)

SQL调试指南-数据库执行计划(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一概述   

知识大全 MS SQL Server 7.0 性能优化指南

MSSQLServer7.0性能优化指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要为数

知识大全 Microsoft SQL Server 7.0储存过程调试指南

MicrosoftSQLServer7.0储存过程调试指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一