【发布时间】:2011-01-15 05:47:10
【问题描述】:
我们目前正在将我们的一个 oracle 数据库迁移到 UTF8,并且我们发现了一些接近 4000 字节 varchar 限制的记录。 当我们尝试迁移这些记录时,它们会失败,因为它们包含变成多字节 UF8 字符的字符。 我想在 PL/SQL 中做的是找到这些字符以查看它们是什么,然后更改它们或删除它们。
我想做:
SELECT REGEXP_REPLACE(COLUMN,'[^[:ascii:]],'')
但是 Oracle 没有实现 [:ascii:] 字符类。
有没有一种简单的方法可以做我想做的事?
【问题讨论】:
-
您可能希望将
ç替换为c等等。扔掉整个字符比丢弃变音符号更糟糕。 -
我们首先需要弄清楚角色是什么,然后再决定如何处理它们。