无法在Oracle中获取DATE格式

时间:2018-01-28 16:11:48

标签: oracle sqldatatypes sql-loader

我的数据库访问时带有文本字段'1000306' - 它是报告日期。我创建了表:

create table TT
(
DT VARCHAR2(20)
);

我通过sql loader加载数据。

我如何从中获取日期?我应该在Oracle中将varchar2转换为DATE吗?或者我应该在加载数据之前这样做吗?

我试过了:

create table TT
(
DT DATE
);

但它没有加载任何数据。

1 个答案:

答案 0 :(得分:1)

在Oracle中,该列应具有DATE数据类型。

控制文件(由SQL * Loader使用)然后应使用TO_DATE函数将输入值转换为有效的日期格式,例如

load data
infile ...
fields ...
( ...
  dt "to_date(:dt, 'yyyymmdd')",    --> this
)

我不知道您提到的日期值(1000306)代表什么(但我确定您这样做)所以 - 只需修改日期格式,希望您能够设法加载数据。

将其加载到VARCHAR2列时取得了成功 - 难怪,因为它接受任何字符串(1000306),但是 NOT 应该将日期值存储到VARCHAR2列中。 / p>