如何在 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,3128KING,PRESIDENT,2523
无分隔符
加载数据
INFILE *
截断到表奖金
(
ENAME位置(1:5),
作业位置(7:15),
< p>SAL 位置(17:20))
BEGINDATA
SMITH CLEAK 2891
ALLEN SALESMAN 2891
< p>WARD SALESMAN 3128KING 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
( p>
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'" p>
截断到表管理器
以“,”结尾的字段(可选用“”'括起来)
(MGRNO,MNAME,JOB,REMARK char(100000)) p>
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
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在 SQLLDR 中设置 CTL 文件字段