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

Oracle中哪个包用于生成随机值?

DB宝 2019-01-27
997


题目部分

在Oracle中,Oracle中哪个包用于生成随机值?


     

答案部分


DBMS_RANDOM是一个可以生成随机数值或者随机字符串的程序包。这个包有INITIALIZE()SEED()TERMINATE()VALUE()NORMAL()RANDOM()STRING()等几个函数,它们提供了内置的随机数生成器,可以用于快速生成随机数,下面只介绍VALUE()STRING()函数,其它函数的使用方法参考官方文档。

1DBMS_RANDOM.VALUE方法

VALUE()是最常用的方法的用法一般有两种:第一种用法没有参数,会返回一个具有38位精度的数值,范围从0.01.0,但不包括1.0。以下示例返回10[0,100)内的任意整数

 1SQL> SET SERVEROUT ON
2SQLBEGIN 
3   2    FOR I IN 1..10 LOOP 
4   3      DBMS_OUTPUT.PUT_LINE(ROUND(DBMS_RANDOM.VALUE*100)); 
5   4    END LOOP
6   5  END
7   6  / 
846 
919 
1045 
1137 
1233 
1357 
1461 
1520 
1682 
17
18
19PL/SQL 过程已成功完成。

复制


第二种VALUE带有两个参数,第一个指下限,第二个指上限,将会生成下限到上限之间的数字,但不包含上限,示例如下所示:

 1SQL> BEGIN 
2   2    FOR I IN 1..10 LOOP 
3   3      DBMS_OUTPUT.PUT_LINE(TRUNC(DBMS_RANDOM.VALUE(1,101))); 
4   4    END LOOP
5   5  END
6   6  / 
797 
877 
913 
1086 
1168 
1216 
1355 
1436 
1554 
1646 
17PL/SQL 过程已成功完成。

复制


2、DBMS_RANDOM.STRING方法

DBMS_RANDOM.STRING可以用来生成随机字符串,如下所示:

1SELECT ROUND(DBMS_RANDOM.VALUE(010)) COL_0,
2       DBMS_RANDOM.STRING('a'ROUND(DBMS_RANDOM.VALUE(010))) COL_A, --all返回不分大小写的字母字符串
3       DBMS_RANDOM.STRING('u'ROUND(DBMS_RANDOM.VALUE(010))) COL_U, --upper返回大写字母字符串
4       DBMS_RANDOM.STRING('l'ROUND(DBMS_RANDOM.VALUE(010))) COL_L, --little小写字母
5       DBMS_RANDOM.STRING('x'ROUND(DBMS_RANDOM.VALUE(010))) COL_X, --大写字母加数字
6       DBMS_RANDOM.STRING('p'ROUND(DBMS_RANDOM.VALUE(010))) COL_P --所有可以打印的字符
7  FROM DUAL;

复制


除此之外,还有DBMS_RANDOM.RANDOM返回的值介于231次方和-231次方之间的整数值,还有其它一些不常用的函数,这里就不介绍了。


本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。



---------------优质麦课------------

 详细内容可以添加麦老师微信或QQ私聊。



About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。


最后修改时间:2020-01-10 20:27:17
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论