一、导入 SQLldr

SQL*LOADER可以把txt文件,Excel文件导入到数据库中。使用SQLloader导入导出需要一个数据文件和一个控制文件。数据文件中存了你需要导入的数据,控制文件中写你需要怎么导入这些数据。

LOAD DATA
infile 'e:\aa.csv'                ## 源文件路径,路径不要包括中文
into table xx_temp  <impcmd>        ## 要导入的表
(id terminated by whitespace   ## id 为列名,whitespace 表示列之间使用空格来区分,如果是其他的 ‘|’ 方式则使用 terminated by '|' 逗号则用逗号.以此类推
)
##   换行 也是自动终止字段读的标识

其中 impcmd 中 可以被4个值替换分别是insert (缺省默认值),append,replace,truncate

insert: 插入数据,要求表为空

append:追加数据,在原来表的基础上再插入数据

replace :删除原表数据,再插入

truncate:删除原表数据,再插入,比replace 更高效

例如有这么张表

create  table salary_tbl(employer_nm varchar(20) ,department varchar(20) not null,salary number not null,leader_nm varchar(20)
)

新建一个.txt文件用于存数据,可以自定义分隔符来区分字段

新建一个ctl 以字符 ' |' 分割

或者这样写更简便

load data
infile 'data1.txt'
into table SALARY_TBL append
fields terminated by '|'(employer_nm ,department ,salary   ,leader_nm
)

在cmd执行  cd 到对应目录执行 ,执行完后可以查看对应位置log的内容

sqlldr userid=system/voapd@orcl control=control1.ctl log=11.log

在cmd 执行  sqlldr     可以查看sqlldr 的帮助

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(默认NOT_USED)
columnarrayrows 直接路径列数组的行数(默认5000)
streamsize 直接路径流缓冲区的大小(以字节计)(默认256000)
multithreading 在直接路径中使用多线程
resumable 启用或禁用当前的可恢复会话(默认FALSE)
resumable_name 有助于标识可恢复语句的文本字符串
resumable_timeout RESUMABLE的等待时间(以秒计)(默认7200)
date_cache 日期转换高速缓存的大小(以条目计)(默认1000)
no_index_errors 出现任何索引错误时中止加载(默认FALSE)
PLEASENOTE 命令行参数可以由位置或关键字指定。前者的例子是'sqlldrscott/tigerfoo';后一种情况的一个示例是'sqlldrcontrol=foouserid=scott/tiger'。位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,允许'sqlldrscott/tigercontrol=foologfile=log',但是不允许'sqlldrscott/tigercontrol=foolog',即使参数'log'的位置正确。
   

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

二、导出spool

在SQLplus 或在SQl命令行 输入

spool c:\test\spool.txtselect st.employer_nm||'|'||st.salary||'|'||st.department from salary_tbl st  where LEADER_NM='雇佣者4';
spool off

就可以导出了

此时ctl 文件该怎么写才能正确导入呢 ?

其中 options skip 是选择跳过的行数  ,  顺便使用支持中文导入的字符编码

options(skip=3)
load data
CHARACTERSET ZHS16GBK
infile 'spool.txt'
into table SALARY_TBL truncate
fields terminated by '|'(employer_nm ,salary   ,department
)

二、外部表

外部表的数据不装入数据库中,数据库中只存储外部表的定义。实际数据位于操作系统中的平面文件中。外部表只读,可以通过select 进行查询。外部表可以由数据泵引擎生成的外部表。也可以通过文本文件生成的外部表

create  table salary_tbl_external(employer_nm ,department ,salary ,leader_nm
)organization external   -----指明外部表
(type oracle_datapump    --利用数据泵来创建default directory MY_DIR    --D:\DIRTEST1location ('sal1.dmp','sal2.dmp')
) parallelas select salary_tbl.employer_nm,salary_tbl.department,salary_tbl.salary,salary_tbl.leader_nm from salary_tbl

在MY_DIR 文件中有 SAL1.dmp 和SAL2.dmp文件。现在有了dmp文件可以通过外部表来创建外部表

create  table salary_tbl_external2(employer_nm varchar2(20) ,department  varchar2(20),salary number,leader_nm  varchar2(20)
) organization external(type oracle_datapumpdefault directory MY_DIR    --D:\DIRTEST1location ('sal1.dmp','sal2.dmp')
)

利用文本文件来创建外部表  现有txt文件

create directory C_test as 'C:\test';
--使用oracle_loader创建外部表,数据文件中每一行为数据行,字段按照 ‘|'划分
create  table salary_tbl_external3(employer_nm varchar2(20) ,department  varchar2(20),salary number,leader_nm  varchar2(20)
) organization external(type oracle_loaderdefault directory C_test    access parameters(records delimited by newline  fields terminated  by '|'     )location ('data1.txt')
)select * from salary_tbl_external3

就可以查询了。

注意: 如果在access parameters 中  注释一些没有用的代码,系统认为这是不符合规则的语句,会产生错误ORA-29913

Oracle 原理:数据装载 ,SQLldr ,外部表相关推荐

  1. hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  2. hive内部表和外部表的区别_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  3. oracle临时表与外部表,Oracle中的临时表、外部表和分区表

    在Oracle中,临时表是ldquo;静态rdquo;的,它与普通的数据表一样只需要一次创建,其结构从创建到删除的整个期间都是有效的.相 临时表 在Oracle中,临时表是"静态" ...

  4. 导入Excle数据至数据库 “外部表不是预期的格式”错误信息

    在操作excel将数据从外部导入到数据库时, 刚开始操作的没有问题的,却报出了:"外部表不是预期的格式"错误信息. 仔细查看excel没有问题, 查阅资料,发现有人说: 解决方法: ...

  5. Oracle原理: 行级锁和表级锁

    行级锁就是施放在行上的排他锁,表级锁就是会施放在表上的排他锁.锁分为两大类:共享锁和排它锁.共享锁的意思就是可以其他用户来锁定表,而排它锁不准其他用户来锁定表. 锁具有:一致性(只允许一个用户修改数据 ...

  6. ORACLE 通过数据值查找找表名和字段名

    有时候,我们只知道数据值,但需要通过这个数据值去查找数据是存放在哪个表的哪个字段. DECLARE V_SQL VARCHAR2(2000); V_COUNT NUMBER; BEGIN FOR I ...

  7. 外部表如何导入mysql_如何利用Oracle外部表导入文本文件的数据

    Oracle外部表支持两种类型的驱动:一种是ORACLE_LOADER,外部表的数据必须来源于文件文件,另一种则是ORACLE_DATAPUMP,外部表的 同事最近在忙数据一致性比对工作,需要对不同文 ...

  8. Oracle的外部表

    一.外部表特性 数据文件位于操作系统之外,并且具有一定的格式分割的文本文件或其他类型文件.ORACLE的外部表通过SQL的形式访问数据文件中的数据,数据并不需要加载到数据库中且数据是可读的,所以不用D ...

  9. Oracle 外部表

    外部表是指不存在于数据库中的表.通过向Oracle 提供描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问.外部表是对数据库表的延伸. ...

  10. Oracle教程之管理表(六)--Oracle外部表的管理

    外部表是表结构被存放在数据字典,而表数据被存放在OS文件的表.通过使用外部表,不仅可以在数据库中查询OS文件的数据,还可以使用INSERT方式将OS文件数据装载到数据库中,从而实现SQL*Loader ...

最新文章

  1. Codeforces Round #313 (Div. 1) B. Equivalent Strings
  2. 数据结构与算法之数组
  3. 深入学习SAP UI5框架代码系列之四:SAP UI5控件的元数据实现
  4. gradle之gradlew最全指令攻略
  5. 关于mysql-connector-net在C#中的用法
  6. Java并发编程笔记之FutureTask源码分析
  7. 如何在Go中实现Elasticsearch
  8. java工程师试卷,Java工程师试卷A
  9. va_list函数族应用
  10. spring aop实例讲解_Spring核心技术详解(一)
  11. KMP算法的浅显解释
  12. 计算机网络学习笔记(30. DNS记录和消息)
  13. cas4.0 mysql_【SSO单点系列】:CAS4.0 CAS整合SpringMVC+MyBatis实现数据库校验(04)
  14. yui compressor php,通过yuicompressor-2.4.7压缩css或js的php应用文件
  15. 计算机网络第五版笔记
  16. UTONMOS:中国区块链专利申请数量占全球总量的84%
  17. 爬虫实战—豆瓣250榜单的爬取
  18. 解决VBE6EXT.OLB不能被加载问题
  19. 2022暑期牛客多校训练第5场 A.Don‘t Starve
  20. SameSite Cookie问题处理解决方案(谷歌Chome浏览器出现Whitelabel Error Page或者不停请求现象解决)

热门文章

  1. 聊聊asp.net中Web Api的使用
  2. 关于css3的自定义字体
  3. 获取iOS设备的型号
  4. idea mac 快键键
  5. linux下find查找带有指定权限的文件(windows下编译的源代码文件)
  6. 2013第51周二eclipse启动优化
  7. [转载] 七龙珠第一部——第034话 红缎带军团
  8. [转]小硕3年是怎样发6篇SCI的
  9. android10分区镜像,分区和映像  |  Android 开源项目  |  Android Open Source Project
  10. linux shell实现go.mod迁移后版本号的更新问题(技能点:sed删除行自定义分隔符;文件的过滤后遍历)