`

Oracle 随机数

 
阅读更多

转自:http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html

 

Oracle 取随机数

 
1、从表中随机取记录

     select * from (select * from staff order by dbms_random.random)
     where rownum < 4

     表示从STAFF表中随机取3条记录

2、产生随机数

         SELECT DBMS_RANDOM.RANDOM FROM DUAL;
         产生一个任意大小的随机数

        SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL;
         产生一个100以内的随机数

         SELECT TRUNC(100+900*dbms_random.value) FROM dual;
         产生一个100~1000之间的随机数

         SELECT dbms_random.value FROM dual;
         产生一个0~1之间的随机数

         SELECT dbms_random.value(10,20) FROM dual;
         产生一个10~20之间的随机数

         SELECT dbms_random.normal FROM dual;
         NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。

3、产生随机字符串

         select dbms_random.string('P',20) from dual;
         第一个参数 P 表示 printable,即字符串由任意可打印字符构成
         第二个参数表示返回字符串长度

4、ceil( n )函数是返回大于或等于n的最小整数。
DBMS_RANDOM.VALUE()是随机产生( 0,1 )之间的数。
要产生两位的随机数,可以DBMS_RANDOM.VALUE()*100,这样产生( 0,100 )
的随机数,当产生( 0,10)之间的数时,只要加上10就可以保证产生的数都是两位了。

ORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式,罗列如下:

1、小数( 0 ~ 1)

     select dbms_random.value from dual

2、指定范围内的小数 ( 0 ~ 100 )
     select dbms_random.value(0,100) from dual


3、指定范围内的整数 ( 0 ~ 100 )

     select trunc(dbms_random.value(0,100)) from dual

4、长度为20的随机数字串

     select substr(cast(dbms_random.value as varchar2(38)),3,20) from dual

5、正态分布的随机数

     select dbms_random.normal from dual

6、随机字符串

     select dbms_random.string(opt, length) from dual

      opt可取值如下:
      'u','U'    :    大写字母
      'l','L'    :    小写字母
      'a','A'    :    大、小写字母
      'x','X'    :    数字、大写字母
      'p','P'    :    可打印字符

7、随机日期

     select to_date(2454084+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J') from dual

     通过下面的语句获得指定日期的基数

     select to_char(sysdate,'J') from dual

8、生成GUID

     select sys_guid() from dual

--生成带分隔符(-)的GUID的自定义函数
create or replace function my_guid
return varchar2
is
    guid varchar(36);
    temp varchar(32);
begin
    temp:=sys_guid();
    guid:= substr(temp,1,8) || '-'
         ||substr(temp,9,4) || '-'
         ||substr(temp,13,4)|| '-'
         ||substr(temp,17,4)|| '-'
         ||substr(temp,21,12);
    return guid;
end;

分享到:
评论

相关推荐

    Oracle插入随机数

    ### Oracle插入随机数 在Oracle数据库管理中,有时我们需要向数据库表中插入大量的随机数据来进行测试、演示或者数据模拟分析等工作。本篇文章将详细介绍如何利用自定义的Oracle函数来实现这一功能。 #### 自定义...

    Oracle里取随机数的几种具体的方法

    Oracle 里取随机数的几种具体的方法 Oracle 是一个功能强大的关系数据库管理系统,它提供了多种方法来生成随机数。随机数生成是许多应用程序的重要组件,例如抽奖活动、验证码生成、密码生成等。在本文中,我们将...

    Oracle里抽取随机数的多种方法

    Oracle 中抽取随机数的多种方法 在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 ...

    ORACLE随机数DBMS_RANDOM包

    Oracle数据库中的DBMS_RANDOM包是一个非常实用的工具,它提供了多种生成随机数和随机字符串的方法,广泛应用于数据填充、测试场景模拟以及各种需要随机性的应用中。以下将详细讲解DBMS_RANDOM包中的主要函数和其使用...

    oracle中随机数的获取

    在Oracle数据库中,生成随机数是一项常见的需求,特别是在数据测试、模拟或数据分析场景中。本文将详细介绍如何在Oracle SQL中获取各种类型的随机数。 首先,Oracle提供了一个内置的函数DBMS_RANDOM,它包含了一...

    oracle取随机数

    在Oracle数据库环境中,生成随机数是一项常见且实用的操作,它被广泛应用于数据模拟、测试、安全性和数据分析等领域。本文将深入探讨如何在Oracle中生成不同类型的随机数,包括字符型、数值型以及GUID,旨在为数据库...

    Oracle中如何生成随机数字、随机字符串、随机日期

    Oracle中如何生成随机数字、随机字符串、随机日期 详细实例脚本。

    C#随机数生成并排序然后插入数据库

    在C#编程中,生成随机数、排序以及与Oracle数据库交互是常见的操作。在这个特定的项目中,我们看到一个挑战性的任务,即生成250万个随机数,对其进行排序,然后将结果存入Oracle数据库。这里我们将深入探讨这些知识...

    Java随机数生成主键(16位)

    oracle自动生成主键的工具类,就一个简单的方法。

    利用ORACLE实现数据的抽样

    此外,Oracle还支持`DBMS_RANDOM`包,这是一个强大的随机数生成器,可以用来辅助实现更复杂的抽样需求。如: ```sql SELECT * FROM (SELECT * FROM MEMBER ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM ; ``` 这将从`...

    Oracle造数工具

    例如,对于整数字段,可能使用Python的random模块生成随机数;对于字符串字段,可能使用字符串模板或正则表达式来构造符合格式的文本。此外,脚本还可能包含了处理相等关系的逻辑,确保生成的数据满足预设的关联条件...

    oracle系统内置包

    例如,DBMS_RANDOM包提供了生成随机数的功能,而DBMSCRYPTO包则提供了加密和解密数据的功能。 4. 实现数据同步和定时服务 Oracle内置包还支持数据同步和定时服务,这在数据库管理和维护中非常有用。例如,DBMS_...

    Oracle相关技术-解决忘记oracle管理员密码,创建只读用户语法等

    至于“随机抽取”,在Oracle中,可以使用内置的函数如`DBMS_RANDONTEGER`或`DBMS_RANDOM.VALUE`来生成随机数,然后结合SQL查询实现数据的随机抽样。例如,如果想从表中随机选取10%的数据,可以创建一个伪列并按该列...

    Oracle创造测试数据

    2. **使用DBMS_RANDOm包**:Oracle提供了一系列随机数生成函数,如DBMS_RANDOM.STRING和DBMS_RANDOM.VALUE,可以用来创建随机的数据。 3. **PL/SQL脚本**:编写PL/SQL过程,根据业务逻辑生成复杂的数据结构。 4. **...

    Oracle中如何用一条SQL快速生成10万条测试数据

    `dbms_random`是Oracle提供的包,包含了一系列随机数生成函数,`value`函数可以生成指定范围内的随机数。通过`trunc`函数,我们可以将其转换为整数。 #### 4. **随机字符串生成** `dbms_random.string('x',20)`...

    Oracle经典SQL语句

    -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 -- 自循环表中 由叶子节点查父节点 -- 查子节点 复制一张表的数据到另外一张表中 PLSQL中存储过程及游标的基本使用 Oracle中恢复某张表丢失数据的方法 -- 把...

Global site tag (gtag.js) - Google Analytics