【发布时间】:2011-08-31 08:27:12
【问题描述】:
SQLLDR 和 CTL 文件
有一个 CSV 文件要导入。
我想在我的 CTL 文件中指定仅当我的 CSV 文件的某个列中有一个空值时才插入到我的表中。例如,我只想上传没有终止日期的用户记录。
我尝试了各种选择
- 当 TERMINATIONDATE = ''时
- 当 TERMINATIONDATE = ""时
- 当 TERMINATIONDATE = null 时
- 当 TERMINATIONDATE = 'null'时
它只在我使用时有效
- 当 TERMINATIONDATE != '' 然后我得到所有被解雇的员工。 但我想要相反...
这似乎不可能吗?
我的 CTL 文件
OPTIONS (SKIP=1)
LOAD DATA
INFILE 'C:\temp\users.csv'
BADFILE 'C:\temp\users.bad'
DISCARDFILE 'C:\temp\users.dsc'
TRUNCATE
INTO TABLE "alawakaba"."users"
When TERMINATIONDATE = ''
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
ID,
FIRSTNAME,
LASTNAME,
FUNCTION,
DEPARTMENT,
COSTCENTER,
HIREDATE,
Field8 FILLER,
TERMINATIONDATE,
LOCCODE
)
(第 8 列只是我不需要的,所以我跳过它)
【问题讨论】:
标签: database oracle csv import sql-loader