【问题标题】:Replace invalid character in oracle (by editing dmp file)替换oracle中的无效字符(通过编辑dmp文件)
【发布时间】:2012-02-22 22:03:18
【问题描述】:

我们有一个用 php/mysql 编写的门户和一个基于 Java EE 和 Oracle 的企业应用程序。最近我们发现文本列中的某个 Unicode 字符(准确的说是 0643)是无效的(由于最终用户的数据输入不正确),必须更改为另一个字符(06A9)。

在 MySQL 中,我只是使用文本编辑器的查找和替换工具更改了导出文件。但是在 oracle 中,dmp 文件是二进制文件,我不知道如何编辑 dmp 文件。

如何更改无效字符?

是否有替代遍历所有表中的所有文本列的替代方法? (我已将其保存为最后的手段!)

【问题讨论】:

    标签: oracle unicode oracle10g


    【解决方案1】:

    编辑 Oracle 转储文件可能是可行的,但不切实际;即使您可以进入并更改某些内容,也可能会损坏它,我怀疑 Oracle 支持会留下深刻的印象。 (例如参见this AskTom question)。

    如果您使用数据泵并且知道数据在哪一列可能可以使用REMAP_DATA parameter 即时更改它,或者@987654325 @ 参数跳过数据,但听起来不像你在那种情况下。您可能会向相关列添加临时约束以阻止该值,因此导入会拒绝(并记录)受影响的行,但这很痛苦和混乱。

    如果您必须检查所有表的所有列,this link 可能会有所帮助。

    【讨论】:

    • 最后我检查了所有表的所有列!
    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    相关资源
    最近更新 更多