使用nzload上传具有两种不同日期格式的文件

时间:2017-03-14 10:44:54

标签: date netezza nzsql

我正在尝试从Oracle数据库中的表中加载Netezza文件,该文件包含两种不同的日期格式 - 一个字段具有格式 DD-MON-YY和第二个字段的格式为DD-MON-YYYY hh24:MI:SS,在NZLOAD中是否有任何文件可以满足文件中两种不同的日期格式

由于 抢劫..

1 个答案:

答案 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我们已经指定了日期及其分隔符的格式。

现在我们必须根据不同的日期格式及其转换的内容修改正则表达式,这可能不是一个通用的解决方案。