获取仅包含数字字符(数字)的10个字符的随机字符串的最简单方法是什么?下面的一个给出类似的内容,但我也想获得带有左填充零的字符串。例如0000000020
SELECT LPAD(REPLACE(TO_CHAR(dbms_random.value(1, 9999999999)),'.',''),10,'0') randomnumstr
FROM dual;
分解成碎片...
select to_char(dbms_random.value(1, 10000000000), 'FM0000000000') from dual;
首先,dbms_random.value
会返回[a,b)范围内的数字,因此请使用1作为开始,并使用10000000000作为结束。该数字永远不会等于10000000000。
其次,使用TO_CHAR
口罩FM0000000000
。在FM
删除添加的标志填充。通过不包括小数点,随机数的小数部分被截断。
现在测试一些文字以确保其有效:
select to_char(1.234, 'FM0000000000') from dual;
0000000001
select to_char(1234, 'FM0000000000') from dual;
0000001234
select to_char(1234567890, 'FM0000000000') from dual;
1234567890
-- Now make sure there are no spaces for the sign
select length(to_char(123, 'FM0000000000')) from dual;
10
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句