oracle sqlldr的使用,外部表的使用,使用idea导出数据库的csv格式文件

一.sqlldr 导入数据

1. 简介

在这里插入图片描述
SQLLOADER是一个oracle工具,能够将数据从外部数据文件装载到数据库中;

sqlldr的两种使用方式:
(1)只使用一个控制文件,在这个控制文件中包含数据
(2) 使用一个控制文件(作为模板) 和一个数据文件
一般采用第二种方式,数据文件可以是 CSV 文件、txt文件或者以其他分割符分隔的。

2. sqlldr命令和参数说明

cmd命令行输入

 SQLLDR keyword=value [,keyword=value,...]

参数说明


    userid -- ORACLE 用户名/口令
   control -- 控制文件名
       log -- 日志文件名
       bad -- 错误文件名
      data -- 数据文件名
   discard -- 废弃文件名
discardmax -- 允许废弃的文件的数目         (全部默认)
      skip -- 要跳过的逻辑记录的数目  (默认 0)
      load -- 要加载的逻辑记录的数目  (全部默认)
    errors -- 允许的错误的数目         (默认 50)
      rows -- 常规路径绑定数组中或直接路径保存数据间的行数
               (默认: 常规路径 64, 所有直接路径)
  bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)
    silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)
    direct -- 使用直接路径                     (默认 FALSE)
   parfile -- 参数文件: 包含参数说明的文件的名称
  parallel -- 执行并行加载                    (默认 FALSE)
      file -- 要从以下对象中分配区的文件
skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)
skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)

commit_discontinued -- 提交加载中断时已加载的行  (默认 FALSE)
  readsize -- 读取缓冲区的大小               (默认 1048576)
external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE  (默认 NO
T_USED)
columnarrayrows -- 直接路径列数组的行数  (默认 5000)
streamsize -- 直接路径流缓冲区的大小 (以字节计)  (默认 256000)
multithreading -- 在直接路径中使用多线程
 resumable -- 启用或禁用当前的可恢复会话  (默认 FALSE)
resumable_name -- 有助于标识可恢复语句的文本字符串
resumable_timeout -- RESUMABLE 的等待时间 (以秒计)  (默认 7200)
date_cache -- 日期转换高速缓存的大小 (以条目计)  (默认 1000)
no_index_errors -- 出现任何索引错误时中止加载  (默认 FALSE)

3. 使用

(1) 向表导入txt文件内容

创建文件a.txt,内容为

10,ACCOUNTING,NEW YORK
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON

scott用户建表

create table mydept as select * from dept where 1=2;

在这里插入图片描述

建立控制文件 a.ctl 内容为

load data infile 'a.txt' into table mydept
insert (DEPTNO char terminated by ',',
	DNAME char terminated by ',',
	LOC char terminated by ',')

load data infile 'a.txt' into table mydept
insert fields  terminated by ',' (DEPTNO,DNAME,LOC )

cmd命令行,使用sqlldr装载数据

sqlldr userid=scott/123456@orcl control=a.ctl  log=a.log

在这里插入图片描述
在这里插入图片描述

(2) 控制文件中的操作类型

insert --为缺省方式,在数据装载开始时要求表为空
在这里插入图片描述

append --在表中追加新记录
修改控制文件,追加记录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

replace --删除旧记录(用 delete from table 语句),替换成新装载的记录

truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录

二.spool 导出数据

在sql命令行执行

create table myemp as select empno,ename,hiredate from emp where 1=2;
spool c:\1.txt
select empno||','|| ename||','||to_char(hiredate,'YYYY-MM-DD')  from emp;
spool off

在这里插入图片描述
经过处理后1.txt
在这里插入图片描述
sqlldr导入
建立控制文件1.ctl

options(skip=2)
load data infile '1.txt' into table myemp
insert (EMPNO char terminated by ',',
	ENAME char terminated by ',',
	HIREDATE date "YYYY-MM-DD" nullif(HIREDATE ="NULL"))

在这里插入图片描述
在这里插入图片描述

三.外部表

1. 简介

外部表中的数据不装入数据库中,数据库中只存储外部表的定义信息,实际的数据位于操作系统的平面文件中,但可以在数据库中,像访问正常表那样,通过select语句来访问操作系统中的平面文件中所含有的数据;

外部表是只读的;

可以使用SQL,PL/SQL和JAVA访问外部表

2. 分类:使用数据泵引擎生成的外部表、根据文本文件创建的外部表

(1) 使用数据泵引擎生成的外部表

sql命令行,查看目录

 select * from  all_directories;

在这里插入图片描述
创建外部表

 create table ext_stu
organization external
(
type oracle_datapump--外部表生成方式是数据泵
default directory MY_DIR--默认的路径
location('ext_stu1.dmp','ext_stu2.dmp')--通过路径和文件名生成外部表在操作系统的平面数据文件
)
parallel--并行
as
select * from emp;

在这里插入图片描述
在这里插入图片描述

把文件EXT_STU1.DMP、EXT_STU2.DMP拷贝到linux系统,执行:

 create table ext_stu_from_orcl
 (	EMPNO    NUMBER(4)   ,                        
	ENAME    VARCHAR2(10) ,                         
	JOB      VARCHAR2(9) ,                         
	MGR      NUMBER(4)  ,                         
	HIREDATE DATE        ,                        
	SAL      NUMBER(7,2) ,                        
	COMM     NUMBER(7,2) ,                        
	DEPTNO   NUMBER(2)     )
organization external
(
type oracle_datapump--外部表生成方式是数据泵
default directory MY_DIR--默认的路径
location('EXT_STU1.DMP','EXT_STU2.DMP')--通过路径和文件名生成外部表在操作系统的平面数据文件
)

可使用select查询

(2) 根据文本文件创建的外部表

文件b.txt数据

10001,Georgi,Facello
10002,Bezalel,Simmel
10003,Parto,Bamford

type oracle_loader --外部文件方式
access parameters --访问外部文件所遵守的格式

创建语句

create table ext_2	
(id number,firstname varchar2(20),lastname varchar2(20))
 organization external
( type oracle_loader 
 default directory MY_DIR
access parameters	
 (records delimited by newline
 fields terminated by ','	
 ) location ('b.txt')	
);

在这里插入图片描述

四.使用idea导出oracle数据库的csv格式文件

连接数据库,选中表,可多选
在这里插入图片描述
左键点击dump data to file ,在选项栏最下方选择 configure csv format
配置csv format
在这里插入图片描述
配置所需的格式后,dump文件

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行益事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值