【问题标题】:Oracle SQL - find and replace ASCIIOracle SQL - 查找和替换 ASCII
【发布时间】:2021-10-25 20:24:32
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sql oracle ascii


    【解决方案1】:

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

    示例表:

    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>
    

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多