Date 使用nzload上载具有两种不同日期格式的文件
我试图从Oracle数据库中的一个表将一个文件加载到Netezza上,该文件包含两种不同的日期格式—一个字段具有相同的格式 DD-MON-YY和第二个字段的格式为DD-MON-YYYY hh24:MI:SS,在NZLOAD中是否有可满足文件中两种不同日期格式的格式 谢谢Date 使用nzload上载具有两种不同日期格式的文件,date,netezza,nzsql,Date,Netezza,Nzsql,我试图从Oracle数据库中的一个表将一个文件加载到Netezza上,该文件包含两种不同的日期格式—一个字段具有相同的格式 DD-MON-YY和第二个字段的格式为DD-MON-YYYY hh24:MI:SS,在NZLOAD中是否有可满足文件中两种不同日期格式的格式 谢谢 rob..如果文件长度固定,则可以使用 但是,如果字段是分隔的,则可以使用一些预处理工具(如sed)将所有日期/时间戳转换为一种标准格式,然后再将输出管道化为nzload 例如 1. 01-JAN-17 2. 01-JAN-20
rob..如果文件长度固定,则可以使用 但是,如果字段是分隔的,则可以使用一些预处理工具(如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
中,我们还指定了日期格式及其分隔符
现在我们必须根据不同的日期格式以及它们转换成什么来修改正则表达式,这可能不是一个通用的解决方案。您可以将一些示例数据作为输入和预期输出发布吗?您可以从Oracle规范化导出,或者将数据作为字符串加载,并在加载到目标表之前进行转换。