2017-03-14 55 views
0

我使用的Pentaho到datamask一些DB與Pentaho的Oracle數據屏蔽 - 時間戳問題

我有形式的幾個轉變對甲骨文的信息: 選擇 - >數據屏蔽 - >基礎上更新行主鍵

我有表中的時間戳是更新步驟中主鍵的一部分。即使我沒有以任何方式掩蓋或更新此字段,但我會收到錯誤ORA-01843:執行更新時不是有效的月份。

我相信這是因爲當Pentaho從步驟1取得時間戳時,它實際上並沒有將它保留爲時間戳,直到我嘗試更新並因此進行主鍵檢查。輸出到Excel,我看到Pentaho的格式給時間戳

2014年7月30日15:44:31.869033歐洲/倫敦(Pentaho的)

但是在DB的格式是

30-JAN- 15 09.21.38.109145000 AM(Oracle - 帶本地時區的TIMESTAMP(6))

我試圖將pentaho字段轉換爲時間戳(格式:yyyy-MM-dd HH:mm:ss.SSSSSS)更新步驟,但如果我嘗試使用毫秒,則會收到錯誤。

2017/03/14 13:19:25 - 選擇值0 - AUDIT_CREATE_TS時間戳:無法將字符串[2015-01-30 09:21:38.109145歐洲/倫敦]轉換爲時間戳,期待格式[ yyyy-mm-dd hh:mm:ss.ffffff]

2017/03/14 13:19:25 - 選擇值0 - 時間戳格式必須是yyyy-mm-dd hh:mm:ss [.fffffffff ]

如果我將我的格式替換爲Pentaho建議的格式,我會得到「非法字符'f'」,然後我卡在一個循環中。

忽略毫秒似乎成功,但不會給我任何比賽,因爲它不夠精確,從數據庫到任何結果..

任何幫助,將不勝感激!

回答

0

不確定Pentaho的,但如果你希望從這個字符串轉換:

'2015-01-30 09:21:38.109145 Europe/London' 

與Oracle中時區的時間戳,這將是:

select to_timestamp_tz('2015-01-30 09:21:38.109145 Europe/London', 'YYYY-MM-DD HH24:MI:SS.FF6 TZR') from dual; 

見甲骨文Datetime Format Models文檔更多。