我正在尝试从Oracle数据库中的表中加载Netezza文件,该文件包含两种不同的日期格式 - 一个字段具有格式 DD-MON-YY和第二个字段的格式为DD-MON-YYYY hh24:MI:SS,在NZLOAD中是否有任何文件可以满足文件中两种不同的日期格式
由于 抢劫..
答案 0 :(得分:0)
如果您的文件是固定长度的,则可以使用zones
但是,如果其字段分隔,您可以使用某些预处理工具(如sed)将所有日期/时间戳转换为一种标准格式,然后将输出汇总到nzload
。
,例如,
1. 01-JAN-17
2. 01-JAN-2017 11:20:32
让我们将日期字段转换为相同的格式
cat output.dat |\
sed -E 's/([0-9]{2})-([A-Z]{3})-([0-9]{2})/\1-\2-20\3/g' |\
nzload -dateStyle DMONY -dateDelim '-'
sed表达式非常简单,让我们分解
# looking for 2 digits followed by
# 3 characters and followed by
# 2 digits all separated by '-'
# elements are grouped with '()' so they can be referred by number
's/([0-9]{2})-([A-Z]{3})-([0-9]{2})
# reconstruct the date using group number and separator, prefix 20 to YY
/\1-\2-20\3
# apply globally
/g'
同样在nzload
我们已经指定了日期及其分隔符的格式。
现在我们必须根据不同的日期格式及其转换的内容修改正则表达式,这可能不是一个通用的解决方案。