我在工作中使用Pentaho數據集成進行衆多項目。我們主要使用Postgres來處理我們的數據庫。我們的一個較舊的表格有兩列設置爲鍵入位(1)以將0存儲爲false,將1存儲爲true。Pentaho數據集成輸入/輸出位類型錯誤
我的任務是在開發環境中將生產表與副本進行同步。我正在使用表格輸入讀取數據,並立即嘗試執行插入/更新。但是,由於通過PDI轉換爲布爾值,它失敗了。我更新了查詢以將值轉換爲整數來保留0和1,但是當我再次運行它時,我的轉換失敗,因爲整數不能是一個位值。
我已經找了幾天嘗試不同的東西,如使用JavaScript步驟轉換爲一點,但我一直未能成功地讀取位類型,並使用插入/更新步驟來存儲數據。我也不相信插入/更新步驟能夠更新用於定義列的數據類型的SQL。
該數據庫建立連接使用:
- 連接類型:PostgreSQL的
- 訪問:天然(JDBC)
- 支持布爾數據類型:真
- 引用所有在數據庫:真
注意:更改表以更改數據類型i在這個時間點上不是可選的。目前太多的應用程序依賴於此表,因此以這種方式改變它可能會導致不良影響
任何幫助,將不勝感激。謝謝。
'...此時不是可選的。目前太多的應用程序依賴於此表,因此以這種方式改變它可能會導致不良影響。「您是否考慮過使用VIEW模擬* old *行爲? (如果數據只用於只讀,則很容易;否則更難) – joop
我遇到過使用PDI和MySQL的情況。相同的用例,在表輸入後立即插入/更新。 MySQL的解決方案是'cast(bit_column_name AS signed)'。但是,我只是用PostgreSQL 9.3數據庫和PDI 5.4穩定性來測試它,並且不需要投射,無論如何。您可以添加源表和目標表的部分DDL,以及您運行的PDI版本嗎? – YuvalHerziger