• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle随机函数之dbms_random使用详解
    dbms_random是oracle提供的一个随机函数包,以下介绍一些dbms_random的常用示例:
    dbms_random.value用法:
    生成一个大于等于0,小于等于1的38位小数
    复制代码 代码如下:

    -- FUNCTION value RETURN NUMBER;
    select dbms_random.value from dual;
    SQL> select dbms_random.value from dual;
    VALUE
    ----------
    0.61011338

    复制代码 代码如下:

    -- FUNCTION value RETURN NUMBER;
    select dbms_random.value from dual;
    SQL> select dbms_random.value from dual;
    VALUE
    ----------
    0.61011338

    生成一个指定范围内的数/ p>
    复制代码 代码如下:

    select dbms_random.value(100,0)
    from dual;
    SQL> select dbms_random.value(100,0)
    2 from dual;
    DBMS_RANDOM.VALUE(100,0)
    ------------------------
    20.7742244285517

    复制代码 代码如下:

    -- FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
    select dbms_random.value(100,0)
    from dual;
    SQL> select dbms_random.value(100,0)
    2 from dual;
    DBMS_RANDOM.VALUE(100,0)
    ------------------------
    20.7742244285517

    dbms_random.normal用法
    获取正态分布的随机数
    复制代码 代码如下:

    select dbms_random.normal from dual;
    SQL> select dbms_random.normal from dual;
    NORMAL
    ----------
    -1.7330759

    复制代码 代码如下:

    select dbms_random.normal from dual;
    SQL> select dbms_random.normal from dual;
    NORMAL
    ----------
    -1.7330759

    dbms_random.string用法
    获取指定字符串
    复制代码 代码如下:

    /* "opt" specifies that the returned string may contain:
    'u','U' : upper case alpha characters only
    'l','L' : lower case alpha characters only
    'a','A' : alpha characters only (mixed case)
    'x','X' : any alpha-numeric characters (upper)
    'p','P' : any printable characters
    */
    SQL>
    select
    dbms_random.string('u',10)
    from dual
    union all
    select
    dbms_random.string('U',10)
    from dual
    union all
    select
    dbms_random.string('l',10)
    from dual
    union all
    select
    dbms_random.string('L',10)
    from dual
    union all
    select
    dbms_random.string('a',10)
    from dual
    union all
    select
    dbms_random.string('A',10)
    from dual
    union all
    select
    dbms_random.string('x',10)
    from dual
    union all
    select
    dbms_random.string('X',10)
    from dual
    union all
    select
    dbms_random.string('P',10)
    from dual
    union all
    select
    dbms_random.string('P',10)
    from dual;

    复制代码 代码如下:

    --FUNCTION string (opt char, len NUMBER)
    /* "opt" specifies that the returned string may contain:
    'u','U' : upper case alpha characters only
    'l','L' : lower case alpha characters only
    'a','A' : alpha characters only (mixed case)
    'x','X' : any alpha-numeric characters (upper)
    'p','P' : any printable characters
    */
    SQL>
    select
    dbms_random.string('u',10)
    from dual
    union all
    select
    dbms_random.string('U',10)
    from dual
    union all
    select
    dbms_random.string('l',10)
    from dual
    union all
    select
    dbms_random.string('L',10)
    from dual
    union all
    select
    dbms_random.string('a',10)
    from dual
    union all
    select
    dbms_random.string('A',10)
    from dual
    union all
    select
    dbms_random.string('x',10)
    from dual
    union all
    select
    dbms_random.string('X',10)
    from dual
    union all
    select
    dbms_random.string('P',10)
    from dual
    union all
    select
    dbms_random.string('P',10)
    from dual;

    DBMS_RANDOM.STRING(‘U',10)
    —————————-
    TXREHAICRI
    VDTMXZORVB
    udavjpudfb
    hvfqhjjdgz
    tZoanQzxtX
    siATLEZXQa
    2LWWZ3H3L5
    ZF6MKKG1R7
    #\j5IPva(W
    sJe/srX:ZB
    10 rows selected
    dbms_random.seed用法
    –可以设置seed来确定随机数的起始点,对于相同的seed而言,随机数的任意一次变化都将是确定的。
    – 就是说,如果在某一时刻调用了seed,之后第一次产生的随机数是4,第二次是6,第三次是1,
    – 那么当你再次调用相同的seed之后,一次产生的随机数还是4、6、1
    – seed有两种,一种是数值型的,一种是字符型(最大长度2000)的
    复制代码 代码如下:

    SELECT USERENV('SESSIONID')
    FROM DUAL;
    BEGIN
    dbms_random.seed(6);
    END;
    /
    SELECT DBMS_RANDOM.value
    FROM DUAL
    CONNECT BY LEVEL 10;

    复制代码 代码如下:

    SELECT USERENV('SESSIONID')
    FROM DUAL;
    BEGIN
    dbms_random.seed(6);
    END;
    /
    SELECT DBMS_RANDOM.value
    FROM DUAL
    CONNECT BY LEVEL 10;

    --SESSION 1
    复制代码 代码如下:

    SQL> SELECT USERENV('SESSIONID')
    2 FROM DUAL;
    USERENV('SESSIONID')
    --------------------
    15140521
    SQL> BEGIN
    2 dbms_random.seed(100);
    3 END;
    4 /
    PL/SQL procedure successfully completed
    SQL> SELECT DBMS_RANDOM.value
    2 FROM DUAL
    3 CONNECT BY LEVEL 10;
    VALUE
    ----------
    0.53801770
    0.67499536
    0.65362270
    0.76351985
    0.29859834
    0.40522032
    0.99551636
    0.39565580
    0.18074760
    9 rows selected

    复制代码 代码如下:

    SQL> SELECT USERENV('SESSIONID')
    2 FROM DUAL;
    USERENV('SESSIONID')
    --------------------
    15140521
    SQL> BEGIN
    2 dbms_random.seed(100);
    3 END;
    4 /
    PL/SQL procedure successfully completed
    SQL> SELECT DBMS_RANDOM.value
    2 FROM DUAL
    3 CONNECT BY LEVEL 10;
    VALUE
    ----------
    0.53801770
    0.67499536
    0.65362270
    0.76351985
    0.29859834
    0.40522032
    0.99551636
    0.39565580
    0.18074760
    9 rows selected

    --SESSION 2
    复制代码 代码如下:

    SQL> SELECT USERENV('SESSIONID')
    2 FROM DUAL;
    USERENV('SESSIONID')
    --------------------
    15140517
    SQL> BEGIN
    2 dbms_random.seed(100);
    3 END;
    4 /
    PL/SQL procedure successfully completed
    SQL> SELECT DBMS_RANDOM.value
    2 FROM DUAL
    3 CONNECT BY LEVEL 10;
    VALUE
    ----------
    0.53801770
    0.67499536
    0.65362270
    0.76351985
    0.29859834
    0.40522032
    0.99551636
    0.39565580
    0.18074760
    9 rows selected

    复制代码 代码如下:

    SQL> SELECT USERENV('SESSIONID')
    2 FROM DUAL;
    USERENV('SESSIONID')
    --------------------
    15140517
    SQL> BEGIN
    2 dbms_random.seed(100);
    3 END;
    4 /
    PL/SQL procedure successfully completed
    SQL> SELECT DBMS_RANDOM.value
    2 FROM DUAL
    3 CONNECT BY LEVEL 10;
    VALUE
    ----------
    0.53801770
    0.67499536
    0.65362270
    0.76351985
    0.29859834
    0.40522032
    0.99551636
    0.39565580
    0.18074760
    9 rows selected
    您可能感兴趣的文章:
    • sql server中随机函数NewID()和Rand()
    • python中随机函数random用法实例
    • php中随机函数mt_rand()与rand()性能对比分析
    • perl写的一个随机编故事的程序(rand随机函数)
    • php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
    • 如何产生真正的随机函数?
    • 如何利用当前时间生成随机函数?
    • 详解C语言中rand函数的使用
    上一篇:RAC cache fusion机制实现原理分析
    下一篇:ORACLE时间函数(SYSDATE)深入理解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle随机函数之dbms_random使用详解 Oracle,随机,函数,之,dbms,