关于在Sql*Loader中去除空格
数据样本:
01, 13527028830, 8613030258085, , 8613000558367,...
目标要求:
数据样本中的字段为右对齐,因此左边有许多空格,表中的数据字段基本都是Varchar2类型。要求导入数据后,去除左边的空格。
说明与解决方案:
对于数据中含有空格的处理,不同的数据类型有不同的处理办法:对于char、date和各种数字类型,基本不用做太多的处理,但是对于Varchar或Varchar2字段,不会随便地自动trim调空格,必需要在sql*loader的control文件中进行一定的设定。下面例子中以下划线表示空格:
说明 |
数据 |
结果 |
首空格(1) |
尾空格(1) |
规定长度 |
__aa__ |
__aa |
有 |
无 |
终结符号 |
__aa__, |
__aa__ |
有 |
有(2) |
引号 |
"__aa__" |
__aa__ |
有 |
有 |
终结符与引号 |
"__aa__", |
__aa__ |
有 |
有 |
可选的引号(存在) |
"__aa__", |
__aa__ |
有 |
有 |
可选的引号(不存在) |
__aa__, |
aa__ |
无 |
有 |
上一字段由空格终结 |
__aa__ |
aa(3) |
无 |
(3) |
注释:
(1)当一个允许空白的字段被整理后,它的值为空(null)。
(2)除了字段由空格终结(参数是TERMINATED BY WHITESPACE)。
(3)尾部空格取决于当前字段的格式,和表中展示的其他项目类似。
从上面的说明我们知道对与文章开始提出的数据我们可以在控制文件中加入:
TERMINATED BY ',' OPTIONALLY ENCLOSED '"'
即可实现对数据文件中所有字段的左边空格进行清理。
阅读(1854) | 评论(0) | 转发(0) |