当前位置:网站首页 > 数据科学与大数据 > 正文

sqlldr导入数字类型(sqlldr导入数据后要重建索引吗)



sqlldr这个命令可以将文本中的数据 大批量的 导入到oracle数据库表中

在win7下使用很简单,自己亲自动手试了下,分享给大家




1.建立一个简单的文本文件,比如:testLoad.txt,内容如下:


1,"test",33
2,"test",33
3,"test",33
4,"test",33
5,"test",33












6,"test",33
7,"test",33
8,"test",33
9,"test",33
10,"test",33










2.在数据库中建立一个表,比如:

create table emp(
id number(5),
name varchar2(20),
age number(3),
constraint pk_id primary key(id));













3.建立一个简单的控制文件,比如:test.ctl,内容如下:

load data--控制文件标识  
infile 'f: estload.txt'--要输入的数据文件名  
append
into table test.emp--test为用户名,emp为表名--向哪个表追加记录
fields terminated by ','--指定分割符,终止字段值










( id ,
name ,
age
)







4.打开cmdd命令行工具,sqlplus登录到相应的数据库,输入如下命令

sqlldr control='f: est.ctl' data='f: estLoad.txt'





执行结果显示 记录数




5.如果想记录执行的过程和日志的话,可以这么写;

sqlldr control='f: est.ctl' data='f: estLoad.txt' log='f:log.log'





6. sqlldr用到的主要参数

1)   userid -- ORACLE username/password --数据库 用户名/密码

2)control –控制文件

3)   log –记录的日志文件

4)   bad –坏数据文件,记录错误的未加载数据

5)   data –数据文件,* data参数只能指定一个数据文件,如果控制文件也通过infile指定了数据文件,并且指定多个,则sqlldr在执行时,先加载data参数指定的数据文件,控制文件中第一个infile指定的数据文件被忽略,但后续的infile指定的数据文件继续有效

6)   discard –丢弃的数据文件

7)   discardmax –允许丢弃数据的最大值        (默认全部)

8)   skip --跳过记录数,从数据文件中,从第一行开始要计算要跳过的行数 (默认0)

9)   load -- Number of logical records to load (默认全部)

10) errors –允许的错误记录数,超过则终止任务(默认50)

11) rows -- Number of rows in conventional path bind array or between direct path data saves(每次提交的记录数,默认:常规路径64,直接路径全部,所以使用直接路径的话,效率会比普通的好太多太多)

12) bindsize -- Size of conventional path bind array in bytes(每次提交记录的缓冲区的大小,字节为单位,默认)

13) silent --禁止输出信息(header,feedback,errors,discards,partitions)

14) direct –使用直通路径方式导入(默认FALSE)

如果表中有索引的话,是不能指定direct=TRUE的,除非使用skip_index_maintenance=TRUE,这个就是在导入的时候忽略索引,所以在数据导入完毕以后,查看索引的状态应该都是无效的,需要重建之,如下SQL:select * from dba_indexes where table_name='?' ;

alter idnex index_name rebuild ;

重新建立索引要比新建索引快。

15) parallel --并行导入 (默认FALSE,注意:parallel并不是让一个sqlldr语句起多个进程来加载数据,而是不锁住加载表,允许别的直接路径加载.所以要使parallel起作用,应该先将要加载的数据文件分成多个,用多个sqlldr语句同时加载,如下例:
  sqlldr userid=scott/tiger control=load1.ctl data=data1.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load2.ctl data=data2.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load3.ctl data=data3.txt direct=y parallel=true &)






到此这篇sqlldr导入数字类型(sqlldr导入数据后要重建索引吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • goldendb数据库是国产的吗(goldengate支持几种数据库)2025-09-26 07:36:09
  • 中国学术期刊数据库是什么(中国学术期刊数据库网址)2025-09-26 07:36:09
  • db数据库使用教程(数据库 dbs)2025-09-26 07:36:09
  • 大数据培训和不培训的区别(大数据培训有用没)2025-09-26 07:36:09
  • 数据中台建设要求(数据中台建设要求怎么写)2025-09-26 07:36:09
  • orecal数据库组件报错(orecal数据库安装)2025-09-26 07:36:09
  • oierdb数据库(oda数据库)2025-09-26 07:36:09
  • sqluldr2导出无反应(sqluldr2导出数据丢失)2025-09-26 07:36:09
  • 自动驾驶数据安全与法律保护问题研究(自动驾驶数据安全与法律保护问题研究论文)2025-09-26 07:36:09
  • 数据中台建设方案规划(数据中台建设的最大挑战是什么)2025-09-26 07:36:09
  • 全屏图片