oracle - 替换oracle中的无效字符(通过编辑dmp文件)

标签 oracle unicode oracle10g

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

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

如何更改无效字符?

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

最佳答案

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

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

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

关于oracle - 替换oracle中的无效字符(通过编辑dmp文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075253/

相关文章:

oracle - 动态选择分区

sql - 有没有办法命名 PL/SQL 包?

java - Java 打印非英文字符不正确

oracle - oracle10g中如何将字符串日期转换为日期格式

c++ - 使用 OCI_SUCCESS_WITH_INFO 进行 OCILogon 后获取 OCI_INVALID_HANDLE

oracle - ORA-00900 : invalid SQL statement- when run a procedure in oracle 10g

java - 查找字符串值的最佳匹配 - Oracle/Java

Git 在行标准化后插入 unicode 字符

c# - 反转字符串的最佳方法

date - apache-nifi 纪元日期转换失败