实验九——nullif字句
目录
(n position(1:2) integer external nullif n='1', 3
第一部分 环境
1. 表格格式
SQL> desc t_null;
名称 是否为空? 类型
----------------------------------------- -------- ------------
N NUMBER
V VARCHAR2(10)
第二部分 控制文件
C:\Documents and Settings\Administrator>e:
E:\>cd \zp\sqlldr
E:\zp\sqlldr>
E:\zp\sqlldr>write defaultif.ctl
LOAD DATA
INFILE *
INTO TABLE T
REPLACE
FIELDS TERMINATED BY ','
(
a position(1:4) char DEFAULTIF a='0000', --integer external是外部整形,可以换成char,因为我们定义的条件加了‘’,同时数字也用integer external
b position(*+1:14) integer external DEFAULTIF a='1111',
c position(16:24) INTEGER EXTERNAL DEFAULTIF (1:5) = BLANKS),
d position(26:34)
)
BEGINDATA
0000,zhangpei,zhangpei,zhangpei
1111,zhangpei,zhangpei,zhangpei
E:\zp\sqlldr>sqlldr "scott/oracle" control=defaultif.ctl
SQL> create table t (a number(4) ,b varchar2(10) ,c varchar2(10) ,d varchar2(10));
SQL> select * from t;
第三部分 执行语句
E:\zp\sqlload>sqlldr userid="scott/tiger" control=10.ctl log=10.log
第四部分 结果显示
A B C D
---------- ---------- ---------- ----------
zhangpei zhangpei zhangpei --字符型转换成null
1111 0 zhangpei zhangpei --数值型转换成0
第五部分 log日志
SQL*Loader: Release 9.0.1.1.1 - Production on 星期二 8月 7 13:36:16 2012
(c) Copyright 2001 Oracle Corporation. All rights reserved.
控制文件: 10.ctl
数据文件: 10.ctl
错误文件: 10.bad
废弃文件: 未作指定
:
(可废弃所有记录)
加载数: ALL
跳过数: 0
允许的错误: 50
绑定数组: 64 行,最大 256000 字节
继续: 未作指定
所用路径: 常规
表T_NULL
已加载从每个逻辑记录
插入选项对此表REPLACE生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
N 1:2 2 CHARACTER
NULL if N =0X31(字符'1')
V 3:8 6 CHARACTER
表T_NULL:
2 行加载成功
由于数据错误, 0 行没有加载。
由于所有 WHEN 子句失败, 0 行没有加载。
由于所有字段都为空的, 0 行没有加载。
为结合数组分配的空间: 768字节(64行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 2
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
从星期二 8月 07 13:36:16 2012开始运行
在星期二 8月 07 13:36:16 2012处运行结束
经过时间为: 00: 00: 00.02
CPU 时间为: 00: 00: 00.00(可?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27151369/viewspace-740755/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27151369/viewspace-740755/