一 文本文件导入
创建测试目录 mkdir /dm/fldr
1 ) 创建文本文件
vi dfl.txt
ID , NAME
1 , NAME1
2 , NAME2
3 , NAME3
此处注意点:列之间一定要有逗号间隔
2 )创建表
CREATE TABLE TEST.FLDR(id int,name VARCHAR(20));
此处注意点:需要注意数据类型与长度
3 ) 创建控件文件
vi dfl.ctl
options(
skip=1
)
LOAD DATA
INFILE '/dm/fldr/dfl.txt'
INTO TABLE TEST.FLDR
FIELDS ','
此处注意点:skip=1 跳过表头第一行,或者多行,由skip = n 决定;如果没有表头可以不加options参数
4 )导入文本数据
/dm/dmdbms/bin
bin]$ ./dmfldr SYSDBA/SYSDBA control='/dm/fldr/dfl.ctl' badfile='/dm/fldr/dfl.bad'
此处注意点 dmfldr 命令后面必须要有USER ID和CONTROL 两个参数;文件路径前后必须要加上转义符号'';其它参数可选。
其它可选参数及说明如下:
L0G 日志文件,字符串类型
BADFILE 错误数据记录文件,字符串类型
SKIP 初始忽略逻辑行数(0)
LOAD 需要装载的行数(ALL)
ROWS 提交频次(50000),DIRECT为FALSE有效
DIRECT 是否使用快速方式装载(TRUE)
二 大字段BLOB,CLOB 文本数据的导出和导入
1)创建大字段表
CREATE TABLE TEST.FLDROUT(id int,c1 BLOB,c2 CLOB);
INSERT INTO TEST.FLDROUT VALUES(1,0XABCD2E24456D,'KFJADKLFALKDFJDAKFLKADFSLFSAD');
INSERT INTO TEST.FLDROUT VALUES(2,0XABCD2FDDF445,'KFJADKLFALKDFJDAKFLKADFSLFSAD');
INSERT INTO TEST.FLDROUT VALUES(3,0XABCD2E3454245,'KFJADKLFALKDFJDAKFLKADFSLFSAD');
INSERT INTO TEST.FLDROUT VALUES(4,0XABCD2222E2445,'KFJADKLFALKDFJDAKFLKADFSLFSAD');
SELECT * FROM TEST.FLDROUT;
3)导出大字段表
/dm/dmdbms/bin
bin]$ ./dmfldr SYSDBA/SYSDBA control='/dm/fldr/dfldr.ctl' lob_directory='/dm/fldr' mode='out'
此处注意点:dmfldr 命令后面必须要有USER ID、CONTROL 和lob_directory三个参数;文件路径前后必须要加上转义符号''。
4)大字段再导入
CREATE TABLE TEST.FLDRIN(id int,c1 BLOB,c2 CLOB);
vi dfldr.ctl
LOAD DATA
INFILE '/dm/fldr/dfldr.txt'
INTO TABLE TEST.FLDRIN
FIELDS '|'
(
ID,
C1,
C2
)
此处注意点:创建一个同结构的大字段表
执行导入命令:
bin]$ ./dmfldr SYSDBA/SYSDBA control='/dm/fldr/dfldr.ctl' lob_directory='/dm/fldr' mode='in'
此处注意点:dmfldr 命令后面必须要有USER ID、CONTROL 和lob_directory三个参数;文件路径前后必须要加上转义符号''
MODE参数改为IN。
文章
阅读量
获赞