通过 SQL LOADER 存储日期和时间值

Posted

技术标签:

【中文标题】通过 SQL LOADER 存储日期和时间值【英文标题】:storing date and time value through SQL LOADER 【发布时间】:2015-05-08 08:46:30 【问题描述】:

我正在尝试为 sql 加载程序编写控制文件。 固定长度格式的源文件。 我在源文件中存在日期和时间,例如,CCYYMMDD 格式的日期从位置 17 到位置 24,HH:MM:SS24 格式的日期从位置 25 到 34。 我喜欢将此日期和时间值形式的源文件以 'YYYYMMDD HH24:MI:SS' 格式存储在某个表的日期列中。

谁能帮忙告诉一下如何在sql loader的控制文件中实现这一点?

下面的代码可以吗?我怀疑源文件中的日期和时间之间没有空格?

APPEND INTO TABLE target_table
TRAILING NULLCOLS
(
date_column POSITION(17:34) "TO_DATE(:DATE_TIME,'YYYYMMDD HH24:MI:SS')"
)

任何线索将不胜感激

【问题讨论】:

这应该可以。但是删除空格,格式应该与文件中的数据匹配。试试看! 【参考方案1】:

查看Oracle's documentationBOUNDFILLER:

...
(date_column BOUNDFILLER POSITION(17:24), 
 time_column BOUNDFILLER POSITION(25:34), 
 date_n_time POSITION(1:1) 
             TO_DATE(:date_column || ' ' || :time_column, 'CCYYMMDD HH24:MI:SS'),
 ...
)

它允许您定义不对应任何列的字段。

【讨论】:

以上是关于通过 SQL LOADER 存储日期和时间值的主要内容,如果未能解决你的问题,请参考以下文章

将 Access 表日期值作为参数传递给 SQL Server 存储过程

Oracle基本数据类型存储格式浅析—日期类型(3)

SQL Server:结合日期列和时间列,插入到日期时间列

php sql中带有日期、变量类别和总和值的数据透视表

VBA 将日期参数传递给 SQL Server 存储过程

如何从 SQL (T-SQL) 中的日期组件创建日期?