我正在尝试将NetBackup统计信息导入Oracle。我真正想要的一个字段是ACTIVE START,但它不能从bpdbjobs -report获得。可用的是ACTIVEELAPSED,所以我想在导入时从END TIME中减去它,如下所示:
结束时间格式:26/09/2009 10:46:20 PM
ELAPSED TIME格式:028:32:35(小时,分钟,秒)
SQL * Loader控制文件(相关行):
ACTIVE_ELAPSED BOUNDFILLER POSITION(261:270),
END_TIME POSITION(271:293) char "to_date(:End_time, 'dd/mm/yyyy hh:mi:ss AM')",
ACTIVE_START EXPRESSION "to_date(:END_TIME, 'dd/mm/yyyy hh:mi:ss AM') - TO_DSINTERVAL(':ACTIVE_ELAPSED')",
我的谷歌搜索通知我Interval没有格式掩码,所以我目前难倒(Oracle SQL不是我的正常演出!)
乔纳森
答案 0 :(得分:1)
你可以分割经过的时间并将其转换为(小数)天,然后你可以从END_TIME中减去它:
to_date(:END_TIME, 'dd/mm/yyyy hh:mi:ss AM')
- substr(:elapsed_time, 1, instr(:elapsed_time, ':') - 1) / 24
- substr(:elapsed_time,
instr(:elapsed_time, ':') + 1,
instr(:elapsed_time, ':', 1, 2) - instr(:elapsed_time, ':') -1) / 24 / 60
- substr(:elapsed_time, instr(:elapsed_time, ':', 1, 2) + 1) / 24 / 60 / 60