使用SQL * LDR的时间戳数据直接路径加载
时间:2020-03-06 14:27:28 来源:igfitidea点击:
SQL-LDR文档指出我们需要进行常规路径加载:
When you want to apply SQL functions to data fields. SQL functions are not available during a direct path load
我将TimeStamp数据存储在要通过SQL-LDR加载的CSV文件中,方法是描述以下字段:
STARTTIME "To_TimeStamp(:STARTTIME,'YYYY-MM-DD HH24:MI:SS.FF6')", COMPLETIONTIME "To_TimeStamp(:COMPLETIONTIME,'YYYY-MM-DD HH24:MI:SS.FF6')"
所以我的问题是:是否可以在没有函数的情况下加载时间戳数据,还是在加载TimeStamp数据时无法执行直接路径加载的情况?
解决方案
在此OTN论坛主题中:
you just need to set the environment variable NLS_TIMESTAMP_FORMAT to tell SQL*Loader what format to expect the timestamp to be in: set NLS_TIMESTAMP_FORMAT=YYYY-MM-DD HH24:MI:SS.FF ..and remove the reference to the to_timestamp function completely from the controlfile.
这是某人成功地直接加载时间戳数据的示例:
加载数据(第4部分):sqlldr(直接,skip_index_maintainance)
附带说明一下,假设我们使用的是较新版本的Oracle,我们大多数人都不再使用sql loader作为更高级版本的External Tables。