在SQL Loader中将文本转换为日期

时间:2016-11-24 17:14:17

标签: oracle sql-loader

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

std::unique_ptr

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

示例文件内容

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

输入中的日期格式为DDMMYYYY

1 个答案:

答案 0 :(得分:1)

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

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