当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
OracleSQLLoader的详细语法二
发布时间:2010/9/17 17:16:44 来源:www.xue.net 编辑:城市总裁吧

  -

  三、此时我们执行加载:

  D:\>sqlldr   userid=fancy/testpass   control=result.ctl   log=resulthis.out

  SQL*Loader:   Release   8.1.6.0.0   -   Production   on   星期二   1月   8   10:25:42   2002

  (c)   Copyright   1999   Oracle   Corporation.   All   rights   reserved.

  SQL*Loader-941:   在描述表RESULTXT时出现错误

  ORA-04043:   对象   RESULTXT   不存在

  提示出错,因为数据库没有对应的表。

  四、在数据库建立表

  create   table   resultxt

  (resultid   varchar2(500),

  website   varchar2(500),

  ipport   varchar2(500),

  status   varchar2(500))

  /

  五、重新执行加载

  D:\>sqlldr   userid=fancy/k1i7l6l8   control=result.ctl   log=resulthis.out

  SQL*Loader:   Release   8.1.6.0.0   -   Production   on   星期二   1月   8   10:31:57   2002

  (c)   Copyright   1999   Oracle   Corporation.   All   rights   reserved.

  达到提交点,逻辑记录计数2

  达到提交点,逻辑记录计数3

  已经成功!我们可以通过日志文件来分析其过程:resulthis.out内容如下:

  SQL*Loader:   Release   8.1.6.0.0   -   Production   on   星期二   1月   8   10:31:57   2002

  (c)   Copyright   1999   Oracle   Corporation.   All   rights   reserved.

  控制文件:   result.ctl

  数据文件:   result.csv

  错误文件:   result.bad

  废弃文件:   未作指定

  :

  (可废弃所有记录)

  装载数:   ALL

  跳过数:   0

  允许的错误:   50

  绑定数组:   64   行,最大   65536   字节

  继续:   未作指定

  所用路径:   常规

  表RESULTXT

  已载入从每个逻辑记录

  插入选项对此表INSERT生效

  列名   位置   长度   中止   包装数据类型

  ------------------------------   ----------   -----   ----   ----   ---------------------

  RESULTID   FIRST   *   ,   CHARACTER

  WEBSITE   NEXT   *   ,   CHARACTER

  IPPORT   NEXT   *   ,   CHARACTER

  STATUS   NEXT   *   WHT   CHARACTER

  表RESULTXT:

  3   行载入成功

  由于数据错误,   0   行没有载入。

  由于所有   WHEN   子句失败,   0   行没有载入。

  由于所有字段都为空的,   0   行没有载入。

  为结合数组分配的空间:   65016字节(63行)

  除绑定数组外的内存空间分配:   0字节

  跳过的逻辑记录总数:   0

  读取的逻辑记录总数:   3

  拒绝的逻辑记录总数:   0

  废弃的逻辑记录总数:   0

  从星期二   1月   08   10:31:57   2002开始运行

  在星期二   1月   08   10:32:00   2002处运行结束

  经过时间为:   00:   00:   02.70

  CPU   时间为:   00:   00:   00.10(可

  六、并发操作

  sqlldr   userid=/   control=result1.ctl   direct=true   parallel=true

  sqlldr   userid=/   control=result2.ctl   direct=true   parallel=true

  sqlldr   userid=/   control=result2.ctl   direct=true   parallel=true

  当加载大量数据时(大约超过10GB),最好抑制日志的产生:

  SQL>ALTER   TABLE   RESULTXT   nologging;

  这样不产生REDO LOG,可以提高效率。然后在CONTROL文件中load   data上面加一行:unrecoverable     此选项必须要与DIRECT共同应用。

  在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到1-10G就算不错了,开始可用结构 相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费。

  有关SQLLDR的问题

  控制文件:input.ctl,内容如下:

  load   data             --1、控制文件标识

  infile   'test.txt'         --2、要输入的数据文件名为test.txt

  append   into   table   test    --3、向表test中追加记录

  fields   terminated   by   X'09'  --4、字段终止于X'09',是一个制表符(TAB)

  (id,username,password,sj)     -----定义列对应顺序

  其中append为数据装载方式,还有其他选项:

  a、insert,为缺省方式,在数据装载开始时要求表为空

  b、append,在表中追加新记录

  c、replace,删除旧记录,替换成新装载的记录

  d、truncate,同上

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved