【发布时间】:2017-03-14 14:23:24
【问题描述】:
我正在使用 Pentaho 对 oracle DB 上的一些信息进行数据屏蔽
我有几种形式的转换: SELECT -> 数据掩码 -> 根据主键更新行
我有一些表,其中时间戳是更新步骤中主键的一部分。即使我没有以任何方式屏蔽或更新此字段,我也会收到错误 ORA-01843: not a valid month 在执行更新时。
我相信这是因为当 Pentaho 从步骤 1 中获取时间戳时,它实际上并没有将其保留为时间戳,直到我尝试更新并因此进行主键检查。输出到 excel,我看到 pentaho 以格式给出时间戳
2014-07-30 15:44:31.869033 欧洲/伦敦 (Pentaho)
但在 DB 中,格式是
30-JAN-15 09.21.38.109145000 AM(Oracle - 带有本地时区的时间戳 (6))
我尝试在更新步骤之前将 pentaho 字段转换为时间戳(格式:yyyy-MM-dd HH:mm:ss.SSSSSS),但如果我尝试使用毫秒,则会收到错误。
2017/03/14 13:19:25 - 选择 values.0 - AUDIT_CREATE_TS 时间戳:无法将字符串 [2015-01-30 09:21:38.109145 Europe/London] 转换为时间戳,期望格式 [yyyy -mm-dd hh:mm:ss.ffffff]
2017/03/14 13:19:25 - 选择值.0 - 时间戳格式必须为 yyyy-mm-dd hh:mm:ss[.fffffffff]
如果我将我的格式替换为 Pentaho 建议的格式,我会得到“非法字符 'f'”,然后我就会陷入循环。
忽略毫秒似乎成功了,但不会给我任何匹配,因为它不够精确并且不会从 db 返回任何结果..
任何帮助将不胜感激!
【问题讨论】: