Oracle SQL - 查找并替换 ASCII

Oracle SQL - find and replace ASCII

在我的数据库中,使用这些 ASCII 值插入了特殊字符

ASCII(' ')  ASCII('')   
49828          32     

列描述中显示的 ASCII 值 49828 显示为特殊字符 ¤

如何找到所有具有此特殊字符的值?以及如何用常规 space (ASCII 32)

替换它

我会说你会使用 REPLACE(正如你所说)。

样本table:

SQL> create table test (col) as
  2  select 'x' || chr(67)    || 'y' from dual union all
  3  select 'x' || chr(49828) || 'y' from dual;

Table created.

内容(忽略 my SQL*Plus 和我的数据库中显示的 Ą

SQL> select * from test;

COL
----
xCy
xĄy

仅更新​​包含该值的行:

SQL> update test set
  2    col = replace(col, chr(49828), chr(32))
  3    where instr(col, chr(49828)) > 0;

1 row updated.

结果:

SQL> select * from test;

COL
----
xCy
x y

SQL>