【问题标题】:In oracle, how can i convert character data in a column that falls under [a-z][A-Z] to some random char x在 oracle 中,如何将 [a-z][A-Z] 下的列中的字符数据转换为一些随机字符 x
【发布时间】:2012-10-07 01:46:20
【问题描述】:

在 oracle 11g 中,如何将[a-z][A-Z] 下的列中的字符数据转换为一些随机字符 x。例如:如果我的源列数据是 tom,那么我应该得到 xxx,如果我的源列数据是 lilly,那么我应该得到 xxxxx。

【问题讨论】:

  • 你有没有尝试过?到现在就好了。

标签: sql regex oracle11g


【解决方案1】:

你可以写:

REGEXP_REPLACE(name_of_source_column, '[a-zA-Z]', 'x')
  AS source_column_with_letters_replaced_by_x

(当然,source_column_with_letters_replaced_by_x 不是 Oracle 中的有效标识符除外)。

【讨论】:

  • 嗨,我在考虑类似的问题,但没有正确理解语法。非常感谢!!
【解决方案2】:
SELECT dbms_random.string( 'A', length( <<input string>> ))
  FROM dual

将返回与&lt;&lt;input string&gt;&gt; 一样长的随机、大小写混合的字母字符串。我想这就是你要找的。但是,我不清楚您的问题是否只想替换源字符串中的字母字符。也就是说,如果输入字符串是“Tom4Jerry”,您是否希望输出为“xxx4xxxxxx”,其中 x 是随机字符?还是你想要“xxxxxxxxx”?

【讨论】:

  • 你好贾斯汀,我有一个要求,我需要屏蔽用户的名字和姓氏。所以,我想到了将字符转换为 x。您对使用 dbms_random.string 的建议对于屏蔽来说是一个真正的好主意。非常感谢您提供的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2012-10-12
  • 1970-01-01
  • 2010-12-29
  • 2011-04-01
  • 2016-02-10
相关资源
最近更新 更多