【发布时间】:2020-12-20 04:51:09
【问题描述】:
EmpId Name
----------------------
E0008 Mary _Jane
EMP0009 PeterParker
10 Jack roger
EMP 0012 Mark Todd
EMP0011 John Smith
EMP13 *Peter Parker
需要满足以下条件
-
从此文件加载数据(加载为 EXCEL 或 CSV)
-
在加载数据时创建多个批次
-
加载数据时,应用以下规则
- (a) 删除 Name 列中多余的空格并替换为单个空格
- (b) 如果名字和姓氏之间没有空格,请添加空格
- (c) 在名称中,删除所有特殊字符
- (d) 在名称中,更改为标题大小写
- 在 EmpID 上删除所有特殊字符,并且 EmpID 应为 EMP0011 格式。
我的控制在下面
load data
infile 'E:\A\Book2.csv'
TRUNCATE
PRESERVE BLANKS
into table dummy
fields terminated by ','
optionally enclosed by '"'AND'"'
(
EMPID "CASE WHEN SUBSTR(:EMPID,1,1)='E' THEN 'EMP00'||SUBSTR(:EMPID,-2) ELSE
'EMP00'||SUBSTR(:EMPID,-2) END",
NAME "INITCAP(REGEXP_REPLACE(:NAME,'[^A-Z a-z]'))"
)
我无法满足条件 2、3b、3d
【问题讨论】:
-
您使用的是 Oracle 还是 SQLite?
-
是否必须使用 SQL*Loader 将 CSV 文件加载到 Oracle 数据库中?
标签: sql oracle sql-loader regexp-replace