2012-01-31 60 views
3

我們有一個用php/mysql編寫的門戶和一個基於Java EE和Oracle的企業應用程序。最近我們發現某個Unicode字符(確切地說是0643)在文本列中無效(由於最終用戶輸入的數據不正確),必須將其更改爲另一個字符(06A9)。在oracle中替換無效字符(通過編輯dmp文件)

在MySQL中,我只是使用文本編輯器的查找和替換工具來更改導出文件。但在oracle中,dmp文件是一個二進制文件,我不知道如何編輯dmp文件。

如何更改無效字符?

是否有替代方法遍歷所有表中的所有文本列? (我已經保存了,作爲最後的手段!)

回答

2

編輯Oracle轉儲文件可能是可能的,但不實際;即使你能夠進入並改變一些可能會破壞它的風險,我也懷疑Oracle的支持會給人留下深刻的印象。 (例如見this AskTom question)。

如果您在使用數據泵,你知道哪個列(S)的數據是在你可能能夠使用REMAP_DATA parameter改變它的飛行,或QUERY參數跳過數據,但聽起來不像你處於這種情況。您可能會向相關列添加臨時約束以阻止該值,因此導入會拒絕(並記錄)受影響的行,但這很痛苦且凌亂。

如果您必須檢查所有表格上的所有列,this link可能會有所幫助。

+0

最後我檢查了所有表格上的所有列! – danrah 2012-05-13 12:54:19