如何在加载到 Oracle 之前相应地格式化 csv 文件 table
How to format accordingly a csv file before loading to an Oracle table
我有以下 csv 文件:
xxxx@xxx:~/Prod/Jcs/BIN/Dash_PPLP/load/test$ cat extraction_LIA.csv
PPL_LIABILITY,2468705,Fri Sep 01 06:56:41 2017,Fri Sep 01 06:58:33 2017
它包含 table 名称、成功的行、start_time 和 end_time。
(从 unix 日志中解析)
我想对其进行相应的格式化,以便像这样加载到 Oracle table 中:
enter image description here
如何格式化??我怎样才能相应地编辑日期以便加载?
例如,期望的结果是:
echo "$Table_name,$Success_rows,$DAY/$MONTH/$YEAR $TIME_START,$DAY/$MONTH/$YEAR $TIME_END">> load.txt
非常感谢!
使用 awk 将 Unix 日期替换为 DAY/MONTH/YEAR
格式。
awk 'BEGIN { OFS=","; FS=","} {split(,a," ");split(,b," ")}
{=a[3]"/"a[2]"/"a[5]" "a[4];=b[3]"/"b[2]"/"b[5]" "b[4]}
{print}' extraction_LIA.csv >load.txt
格式化记录:
PPL_LIABILITY,2468705,01/Sep/2017 06:56:41,01/Sep/2017 06:58:33
注意:这里使用了awk的split
函数,将第3列和第4列拆分成一个数组,并提取出具体的元素。
无需预处理。假设您将使用 sqlldr,并且 START_TIME 和 END_TIME 列是 DATETIME 数据类型(如果不是,它们应该是),使用正确的日期格式模型为 sqlldr 构建您的控制文件数据:
...
start_time date "to_date(start_time, 'DY MON DD HH24:MI:SS YYYY')",
end_time date "to_date(end_time, 'DY MON DD HH24:MI:SS YYYY')"
...
我有以下 csv 文件:
xxxx@xxx:~/Prod/Jcs/BIN/Dash_PPLP/load/test$ cat extraction_LIA.csv
PPL_LIABILITY,2468705,Fri Sep 01 06:56:41 2017,Fri Sep 01 06:58:33 2017
它包含 table 名称、成功的行、start_time 和 end_time。 (从 unix 日志中解析)
我想对其进行相应的格式化,以便像这样加载到 Oracle table 中:
enter image description here
如何格式化??我怎样才能相应地编辑日期以便加载?
例如,期望的结果是:
echo "$Table_name,$Success_rows,$DAY/$MONTH/$YEAR $TIME_START,$DAY/$MONTH/$YEAR $TIME_END">> load.txt
非常感谢!
使用 awk 将 Unix 日期替换为 DAY/MONTH/YEAR
格式。
awk 'BEGIN { OFS=","; FS=","} {split(,a," ");split(,b," ")}
{=a[3]"/"a[2]"/"a[5]" "a[4];=b[3]"/"b[2]"/"b[5]" "b[4]}
{print}' extraction_LIA.csv >load.txt
格式化记录:
PPL_LIABILITY,2468705,01/Sep/2017 06:56:41,01/Sep/2017 06:58:33
注意:这里使用了awk的split
函数,将第3列和第4列拆分成一个数组,并提取出具体的元素。
无需预处理。假设您将使用 sqlldr,并且 START_TIME 和 END_TIME 列是 DATETIME 数据类型(如果不是,它们应该是),使用正确的日期格式模型为 sqlldr 构建您的控制文件数据:
...
start_time date "to_date(start_time, 'DY MON DD HH24:MI:SS YYYY')",
end_time date "to_date(end_time, 'DY MON DD HH24:MI:SS YYYY')"
...