我的数据库访问时带有文本字段'1000306' - 它是报告日期。我创建了表:
create table TT
(
DT VARCHAR2(20)
);
我通过sql loader加载数据。
我如何从中获取日期?我应该在Oracle中将varchar2转换为DATE吗?或者我应该在加载数据之前这样做吗?
我试过了:
create table TT
(
DT DATE
);
但它没有加载任何数据。
答案 0 :(得分:1)
在Oracle中,该列应具有DATE数据类型。
控制文件(由SQL * Loader使用)然后应使用TO_DATE函数将输入值转换为有效的日期格式,例如
load data
infile ...
fields ...
( ...
dt "to_date(:dt, 'yyyymmdd')", --> this
)
我不知道您提到的日期值(1000306)代表什么(但我确定您这样做)所以 - 只需修改日期格式,希望您能够设法加载数据。
将其加载到VARCHAR2列时取得了成功 - 难怪,因为它接受任何字符串(1000306),但是 NOT 应该将日期值存储到VARCHAR2列中。 / p>