把文本文件导入到ORACLE里,从网上找到两种方法:
- 一种是用sqlldr 工具
- 一种是用pl/sql developer 的文本导入工具
第一种:
首先有一个info.txt文件,是按竖线分割的记录
“FFF_GGG_FF|GOD|254|254|16384|16384|254|254|”
1、先是在oracle中创建相应的表,结构如下:
SQL> desc info;
TABLENAME VARCHAR2(200)
OWNUSER VARCHAR2(100)
EXPNUMS NUMBER(12)
EXPLOGNUMS NUMBER(12)
EXPSIZE NUMBER(12)
IMPSIZE NUMBER(12)
IMPLOGNUMS NUMBER(12)
IMPNUMS NUMBER(12)
2、新建一个控制文件info.ctl
load data
infile 'info.txt'
append into table info
fields terminated by '|'
(
TABLENAME,
OWNUSER,
EXPNUMS,
EXPLOGNUMS,
EXPSIZE,
IMPSIZE,
IMPLOGNUMS,
IMPNUMS
)
3、新建info.sh的脚本,或直接在终端里输入
#!/bin/bash
sqlldr senwei/senwei control=$HOME/oracle/info.ctl
哎呀 其实就一句命令,真不好意思……
还有一句就是想把info.txt转换为excel格式,然后在windows打开。但是在linux环境下执行的语句
cat exp_imp_report.list|sed 's/|/\t/g' >aa.xls
第二种是用pl/sql develpor的导入工具:
1. 数据已经准备好,存放在txt文本,并且记录行是用回车分隔,列式用逗号分隔
2. 打开pl/sql developer,选择Tools -> Text Importer
3. 点击内窗口左上按钮(Open Data File),选择数据文本
4. 小窍门:
把txt文本里的数据最上面加上一行头,与你要插入的表的结构对应即可
在Data from Textfile视图里,在中间的Configuration视窗,把Name in header单选框选中
5.切换到Data to Oacle视图,选择你要插入的表
注意:Fields视窗左侧的是你txt文本里的数据格式与你要插入的表的数据格式要对应上,否则会出现把01误当成1的现象
6.为了方便起见,还可以用Save Definition来把第五点做的东西保存住,这样以后再做同一个表的时候,不用再麻烦啦
7.用这个东西我最多导过26w的数据,速度可以,有假死现象,不必担心,导完就会好的
以上内容转自网上