如何在 SQLLDR 中设置 CTL 文件字段

分类:编程技术 时间:2024-02-20 16:00 浏览:0 评论:0
0
本文将详细讲解如何在SQLLDR中设置CTL文件字段。文章内容质量很高,分享给大家,作为参考。希望您看完本文后对相关知识有一定的了解。

position关键字用于指定列的起始和结束位置
Position(m:n):指从第m个字符开始到第n个字符结束的列值-第一个字符
position(*+2:15):直接指定一个值的方式称为绝对偏移量。如果使用*号,它是一个相对偏移量,表示前一个字段结束的位置和这次开始的位置。也可以使用相对便宜的量。再计算一下。
Position(*) char(9):这种相对偏移+类型和长度的好处是只需要指定第一列的起始位置,其他列只需要指定列长度。
FILLER:在控件中指定FILLERol文件表示该列值没有导入到表中。

正常

加载数据

INFILE *

进入表奖励

以“,”结尾的字段< /p>

(ENAME,JOB,SAL)

BEGINDATA

史密斯,CLEAK,3904

艾伦,推销员,2891

< p>WARD,SALESMAN,3128

KING,PRESIDENT,2523

无分隔符

加载数据

INFILE *

截断到表奖金

(

ENAME位置(1:5),

作业位置(7:15),

< p>SAL 位置(17:20)

)

BEGINDATA

SMITH CLEAK 2891

ALLEN SALESMAN 2891

< p>WARD SALESMAN 3128

KING PRESIDENT 2523

少于导入的表格列

加载数据

INFILE *

< p>截断到表奖金

(

ENAME位置(1:5),

工作位置(7:15),

SAL 位置(17:20),

通讯“0”

)

BEGINDATA

SMITH CLEAK 2891

ALLEN SALESMAN 2891

WARD SALESMAN 3128

KING PRESIDENT 2523

多于导入的表格列

加载数据A

INFILE *

截断到表奖金

(

ENAME 位置(1:6),

TCOL FILLER 位置(8:11),

JOB 位置(13:21),

SAL 位置(23:26)

)

BEGINDATA

史密斯 7369 职员 800 20

艾伦 7499 推销员 1600 30

沃德 7521 推销员 1250 30

琼斯 7566经理 2975 20

马丁 7654 推销员 1250 30

布莱克 7698 经理 2850 30

克拉克 7782 经理 2450 10

国王 7839 总统 5000 10

特纳 7844 销售员 1500 30

詹姆斯 7900 职员 950 30

福特 7902 分析师 3000 20

米勒 7934 职员 130010

MILLER 7934 职员 130010

p>

导入不同的表

加载数据

INFILE *

截断

进入表奖励

WHEN Tab='BON'

(

Tab FILLER 位置(1:3),

ENAME 位置(5:9),

工作岗位(11:19),

SAL岗位(21:24)

)

进入表管理器

WHEN Tab='MGR'

(

Tab FILLER 位置(1:3),

MGRNO 位置(5:6),

p >

MNAME 位置(8:14),

JOB po位置(16:28)

)

BEGINDATA

BON SMITH CLERK 3904

BON ALLEN SALER,M 2891

BON WARD SALER,“S”3128

BON KING 总裁 2523

MGR 10 SMITH 销售经理

MGR 11 ALLEN.W 技术经理

p>

MGR 16 BLAKE 人力资源经理

TMP SMITH 7369 文员 800 20

TMP ALLEN 7499 销售员 1600 30

TMP WARD 7521 销售员 1250 30< /p>

TMP JONES 7566 MANAGER 2975 20

换行处理

加载数据

INFILE *

截断到表中额外的

字段以“,”结尾,可选地用“”'括起来

(ENAME,JOB,SAL)

BEGINDATA

SMITH ,克利克,3904

艾伦,“塞勒,M”,2891

沃德,“塞勒,”“S”“”,3182

金,总统,2523

函数使用

加载数据

INFILE *

TRUNCATE INTO TABLE BONUS

(

ENAME 职位(1:5)、

JOB 职位(7:15)、

SAL 职位(17:20)、

comm "substr(:sal,1,1)"

)

BEGINDATA

SMITH CLEAK 3904

艾伦推销员 2891

p>

病房推销员 3128

KING PRESIDENT 2523

大字段处理

加载数据

INFILE * "str '\r\n'"

截断到表管理器

以“,”结尾的字段(可选用“”'括起来)

(MGRNO,MNAME,JOB,REMARK char(100000))

BEGINDATA

10,史密斯,销售经理,我是史密斯。

他是销售经理。|

11,ALLEN.W ,技术经理,我是 ALLEN.W。

他是一名技术经理。|

16,BLAKE,人力资源经理,“我是 BLAKE。他是一名人力资源经理。岗位职责如下:

1.确保公司层面的人力资源举措和新计划在当地有效实施。

2.主动制定吸引人才、聘用人才、整合人才、培养人才、管理人才、奖励人才、留住人才的人力资源战略,促进公司业务的可持续发展。

3.监督标准招聘程序,确保及时满足公司的人员配置要求,并对管理层候选人进行面试

4。提供员工为员工提供公平合理的薪酬福利,确保市场竞争力。

5.制定、实施和监督培训和发展计划,以提升员工的技能并增强公司实现业务目标和应对未来挑战的能力。”

将文件内容加载到大型字段

< p>加载数据

INFILE *

截断到表LOBTBL

(

CREATE_DATE POSITION(1:17) DATE 'YYYY- MM-DD HH24:MI',

文件大小位置(*+1:25) "to_number(:FILESIZE, '99,999,999' )",

文件所有者位置( *+1:34),

文件名位置(*+1) char(200) "substr(:FILENAME,instr(:FILENAME, ' \\',-1)+1)",< /p>

FILEDATA LOBFILE(FILENAME) 终止于 EOF

)

BEGINDATA

2009-03-17 09:43 154 JUNSANSI F:\ oracle\script\ldr_case11_1.ctl

2009-03-17 09:44 189 JUNSANSI F:\oracle\script\ldr_case11_1.dat

2009-03-17 09:44 2,369 JUNSANSI F:\oracle\script\ldr_case11_1.log

2009-03-16 16:50 173 JUNSANSI F:\oracle\s脚本\ldr_case11_2。 ctl

2009-03-16 16:49 204 JUNSANSI F:\oracle\script\ldr_case11_2.dat

2009-03-16 16:50 1,498 JUNSANSI F:\oracle\ script\ldr_case11_2.log

2009-03-16 17:41 145 JUNSANSI F:\oracle\script\ldr_case11_3.ctl

2009-03-16 17:44 130 JUNSANSI F :\oracle\script\ldr_case11_3.dat

2009-03-16 17:44 1,743 JUNSANSI F:\oracle\script\ldr_case11_3.log

2009-03-17 11: 01 132 JUNSANSI F:\oracle\script\ldr_case11_4.ctl

2009-03-17 11:02 188 JUNSANSI F:\oracle\script\ldr_case11_4.dat

p>

2009 -03-17 11:02 1,730 JUNSANSI F:\oracle\script\ldr_case11_4.log

加载每行的行号

加载数据

infile *

into table t

replace

(

seqno RECNUM //加载每行的行数

文本位置(1:1024)

)

BEGINDATA

测试线1

测试线2

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在 SQLLDR 中设置 CTL 文件字段

用户评论