暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 需要保留用方格输入的数据

askTom 2012-11-09
168

问题描述

亲爱的汤姆,

我最近遇到过这样的情况:数据库条目是用特殊字符创建的,比如在表中的某一列中的一个方框。

现在我的任务是查找并列出那些带有特殊字符的记录(在这种情况下是方格) ,然后执行删除或替换为空格的操作。你能给我点建议吗。


谢谢,
阿努普

专家解答

你必须建立一个包含所有你认为有效的字符的字符串。


那你就可以

从表中选择*
其中替换(转换(列, ),'x'x',''),','')不为null ;


它将除第一个有效字符外的所有有效字符转换为NULL ,并将第一个有效字符转换为X

然后将X替换为不使用任何内容


如果有任何遗漏-它不是一个有效的字符。


例如,假设a、b、c、x、y、z都是我的有效字符,则:

ops$tkyte%ORA11GR2> create table t ( x varchar2(10) );

Table created.

ops$tkyte%ORA11GR2> 
ops$tkyte%ORA11GR2> insert into t values ( 'abc' );

1 row created.

ops$tkyte%ORA11GR2> insert into t values ( 'abcxyz' );

1 row created.

ops$tkyte%ORA11GR2> insert into t values ( 'abcmxyz' );

1 row created.

ops$tkyte%ORA11GR2> 
ops$tkyte%ORA11GR2> select *
  2    from t
  3   where replace( translate( x, 'xyzabc', 'x' ), 'x', '' ) is not null
  4  /

X
----------
abcmxyz

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论