在 SQL 加载程序中将文本转换为日期

Converting Text to Date in SQL Loader

我正在使用以下代码从固定长度的文本文件中读取数据

DATE                            SYSDATE,
NAME                            position(9:38),
SCORE                           position(39,41)

现在我想直接加载 DATE 文本。示例仅引用来自 csv 文件的输入。请帮忙解决这个问题。输入也可以是空字符串,在这种情况下我想用 SYSDATE 替换它。

示例文件内容

11112016SachinTendulkar               110
12122016SachinTendulkar               101
        RahulDravid                   120

输入的日期格式将为 DDMMYYYY

除了 "date" 之外,请将您的日期列命名为更具描述性的内容,因为这是 Oracle 保留字。我称之为 load_date。您的控制文件条目将如下所示。使用 NVL2 函数。如果 load_date 不为空,则将其转换为日期。如果为空,则使用 sysdate。

load_date position(1:8) "nvl2(:load_date, to_date(:load_date, 'ddmmyyyy'), trunc(sysdate))"