说明:本文为面向Oracle SQL*Loader初学者的指导手册
标签:SQL*Loader、SQL_Loader、数据加载、数据导入
注意:文中删去了不需要的多余部分,让初学者一目了然一学就会
相关工具:Oracle常用的3种数据加载工具sql_loader、oracle_loader、oracle_datapump
温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化
★ 相关文章
※ SQL*Loader(本文)
※ ORACLE_LOADER Access Driver
※ ORACLE_DATAPUMP Access Driver
★ 本文大纲
※ 工具对比
※ 知识点
※ 格式枚举
※ 详情
※ 常见问题
★ 工具对比
属性/对象 | SQL_Loader | ORACLE_LOADER | ORACLE_DATAPUMP |
用途 | 将外部数据导入数据库 | 对外部表进行装载 | 对外部表进行装载/卸载 |
★ 知识点
※ SQL*Loader是用来将外部数据加载到数据库中的工具,如Excel→Oracle
※ SQL*Loader不是oracle_loader,新学者容易混淆
※ SQL*Loader只是数据导入工具,而oracle_loader/oracle_datapump属于外部表工具
★ 格式枚举
--格式1:var(变长)(精确)(略)
--格式2:str(流式)(方便)(略)
--格式3:fix(定长)(效率高)(本文)
★ 详情
※ 格式:fix(定长)
✔ 控制文件:
vi /home/oracle/zzt_sql_loader_ctl.txt
load data
infile 'zzt_sql_loader_data.txt' "fix 12"
truncate into table zzt_sql_loader_tab
fields terminated by ',' optionally enclosed by '"'
(col1 ,col2)
✔ 数据源:
vi /home/oracle/zzt_sql_loader_data.txt
12345,aaaaa
54321,bbbbb
✔ 创建Oracle目录
SQL> create directory zzt_dir as '/home/oracle/';
SQL> grant read,write on directory zzt_dir to scott;
✔ 创建装载表定义
SQL> drop table scott.zzt_sql_loader_tab;
SQL> create table scott.zzt_sql_loader_tab(col1 varchar2(20),col2 varchar2(20));
✔ 执行SQL_Loader加载数据
su - oracle
sqlldr scott/tiger@TNS control=/home/oracle/zzt_sql_loader_ctl.txt
✔ 查看装载结果
SQL> select * from scott.zzt_sql_loader_tab ;
COL1 COL2
------------ --------------------
12345 aaaaa
54321 bbbbb
★ 常见问题
※ 在fix n模式下,如果数据长度不是n的整数倍,则会出现如下加载失败提示
SQL*Loader-501: Unable to read file (zzt_sql_loader_data.txt)
SQL*Loader-566: partial record found at end of datafile
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~
over