度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1203|回复: 6
打印 上一主题 下一主题

[分享] Oracle生成随机字符串方法

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-6-22 13:56:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Oracle生成随机字符串的方法是通过dbms_random.string实现的。
1.dbms_random.string用法
Oracle官方文档参考链接:http://download.oracle.com/docs/ ... _random.htm#i996825
用法是DBMS_RANDOM.STRING(选项, 返回字符串长度)
选项有如下几种可供选择:
1)'u', 'U' - returning string in uppercase alpha characters
2)'l', 'L' - returning string in lowercase alpha characters
3)'a', 'A' - returning string in mixed case alpha characters
4)'x', 'X' - returning string in uppercase alpha-numeric characters
5)'p', 'P' - returning string in any printable characters.
6)Otherwise the returning string is in uppercase alpha characters.
2.以随机生成8位密码这个简单需求为例演示一下各个选项的用法
1)生成由大写字母组成的8位密码
sys@ora10g> select dbms_random.string('u',8) "u_8_password" from dual;
u_8_password
------------------------------------------------------------------
HXGBMNCF
sys@ora10g> select dbms_random.string('U',8) "U_8_password" from dual;
U_8_password
------------------------------------------------------------------
JEZLDJXK
2)生成由小写字母组成的8位密码
sys@ora10g> select dbms_random.string('l',8) "l_8_password" from dual;
l_8_password
------------------------------------------------------------------
ilxpvvmy
sys@ora10g> select dbms_random.string('L',8) "L_8_password" from dual;
L_8_password
------------------------------------------------------------------
pzvjvpji
3)生成由大小写字母混合出现的8位密码
sys@ora10g> select dbms_random.string('a',8) "a_8_password" from dual;
a_8_password
------------------------------------------------------------------
YfeaneZx
sys@ora10g> select dbms_random.string('A',8) "A_8_password" from dual;
A_8_password
------------------------------------------------------------------
IghqWAVu
4)生成由大写字母和数字组成的8位密码
sys@ora10g> select dbms_random.string('x',8) "x_8_password" from dual;
x_8_password
------------------------------------------------------------------
2VKQ4FSH
sys@ora10g> select dbms_random.string('X',8) "X_8_password" from dual;
X_8_password
------------------------------------------------------------------
MMYTPC40
5)生成由任何可打印字符组成的8位密码
sys@ora10g> select dbms_random.string('p',8) "p_8_password" from dual;
p_8_password
------------------------------------------------------------------
G7`Rbe#V
sys@ora10g> select dbms_random.string('P',8) "P_8_password" from dual;
P_8_password
------------------------------------------------------------------
wPqHt*0.
6)当选项为其他字母的时候返回的内容仍将是大写字母
选项以“8”为例,返回的8位随机字符串内容是由大写字母组成的。
sys@ora10g> select dbms_random.string('8',8) "8_8_password" from dual;
8_8_password
------------------------------------------------------------------
PJGYPPLG

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-6-22 13:57:10 | 只看该作者
3.小结
  本文以具体实例形式演示了dbms_random.string的用法。有时候也可以混合使用。
sys@ora10g> select dbms_random.string('u',8)||dbms_random.string('l',8) "u_l_16_password" from dual;

u_l_16_password
------------------------------------------------------------------
EMVXOZLGixziwvny

Good luck.
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
 楼主| 发表于 2020-6-22 13:58:24 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
地板
发表于 2020-6-22 17:18:05 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
5#
 楼主| 发表于 2020-6-23 13:58:56 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
6#
发表于 2020-6-23 14:06:26 | 只看该作者
回复

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
7#
发表于 2020-6-23 17:08:35 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 16:12 , Processed in 0.174118 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表