免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2565 | 回复: 5
打印 上一主题 下一主题

哪位兄弟介绍一下SQLLDR? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-28 15:06 |只看该作者 |倒序浏览
能否象EXP/IMP一样,实现数据的备份与恢复(导入/导出)?

论坛徽章:
0
2 [报告]
发表于 2003-02-28 15:10 |只看该作者

哪位兄弟介绍一下SQLLDR?

1、导出数据:在SQLPLUS中将需要导入的表使用带格式(比如”^”)的查询将其输出到文件文件,然后在文本文件去掉无用的部分,特别是表中过多的空格。这里需要注意SQLPLUS中调整几个参数:比如是否显示输出内容、每一页的输出行数、每一行的输出宽度(这两个参数非常重要,如果行数和输入宽度不设置好,可能导致LOADER装入出错)等等;

2、在需要装入的数据库中创建与导出表完全一样的表结构;
3、书写控制文件:格式如下(文件仅只考虑控制文件和数据分开的方式):

load data
infile '带路径的数据'           /*  请注意文件必须带上路径和文件名          */
preserve blanks
into table 表名 append   /*      表示在LOADER过程中将数据装入的表名      */
fields terminated by '^'
TRAILING NULLCOLS

4、正式装入:SQLLDR 用户名/口令 control=控制文件名[.ctl] [bad=日志文件[.bad]]

例:

第一步:
SQL>;connect scott/tiger
SQL>;set heading off
SQL>;set linesize 20                     /*      根据输入的行宽自己确定  */
SQL>;set pagesize 5000              /*      根据不同的ORACLE确定    */
SQL>;spool c:\emp.txt
SQL>;select empno||'^'||ename||'^'||job||'^'||mgr||'^'||hiredate||'^'||sal||'^'||comm||'^'||deptno from emp;

SQL>;spool off

第二步:
Create table empbak (
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))

第三步:

LDREMP.CTL
load data
infile 'C:\EMP.TXT'
preserve blanks
into table empbak append
fields terminated by '^'
TRAILING NULLCOLS
(
    EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
)

第四步:

SQLLDR scott/tiger control=c:\ldremp.ctl bad=c:\ldremp.bad direct=true [说明:如果没有此参数,装载时会检查INSERT触发器和相关约束]

另外:如果一个表的数据内容太多,可以考虑使用并行装载,即将以前的一个数据文件撤分为多个,用多线程同时装载,速度会更快。

论坛徽章:
0
3 [报告]
发表于 2003-02-28 17:19 |只看该作者

哪位兄弟介绍一下SQLLDR?

当字段为DateTime类型时,后面的时间被截掉了,只剩日期,怎么办?

论坛徽章:
0
4 [报告]
发表于 2003-03-01 17:47 |只看该作者

哪位兄弟介绍一下SQLLDR?

在.CTL文件中指明日期格式就可以的了,
例如:
...
hiredate date 'yyyy-mm-dd',
...

论坛徽章:
0
5 [报告]
发表于 2003-03-01 17:48 |只看该作者

哪位兄弟介绍一下SQLLDR?

在.CTL文件中指明日期格式就可以的了,
例如:
...
hiredate date 'yyyy-mm-dd',
...

论坛徽章:
0
6 [报告]
发表于 2003-03-03 08:15 |只看该作者

哪位兄弟介绍一下SQLLDR?

我测试的结果怎么sqlldr还比不上exp呀?且每64条记录提交一次,是数据库设计或者命令参数有问题吗?而sqlplus导出数据到文本文件巨慢,无法忍受!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP