【发布时间】:2012-10-07 01:46:20
【问题描述】:
在 oracle 11g 中,如何将[a-z][A-Z] 下的列中的字符数据转换为一些随机字符 x。例如:如果我的源列数据是 tom,那么我应该得到 xxx,如果我的源列数据是 lilly,那么我应该得到 xxxxx。
【问题讨论】:
-
你有没有尝试过?到现在就好了。
在 oracle 11g 中,如何将[a-z][A-Z] 下的列中的字符数据转换为一些随机字符 x。例如:如果我的源列数据是 tom,那么我应该得到 xxx,如果我的源列数据是 lilly,那么我应该得到 xxxxx。
【问题讨论】:
你可以写:
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 中的有效标识符除外)。
【讨论】:
SELECT dbms_random.string( 'A', length( <<input string>> ))
FROM dual
将返回与<<input string>> 一样长的随机、大小写混合的字母字符串。我想这就是你要找的。但是,我不清楚您的问题是否只想替换源字符串中的字母字符。也就是说,如果输入字符串是“Tom4Jerry”,您是否希望输出为“xxx4xxxxxx”,其中 x 是随机字符?还是你想要“xxxxxxxxx”?
【讨论】: