精华内容
下载资源
问答
  • Oracle随机启动

    2014-09-17 15:16:28
    Oracle随机启动
  • oracle 随机函数

    2012-01-14 19:51:43
    Oracle随机函数—dbms_random     1.基础认识   关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:  select text from all_source  where name = 'DBMS_RANDOM'  and type = 'PACKAGE' order...

    Oracle随机函数—dbms_random

     

     

    1.基础认识

     

    关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:

         select text   from all_source

          where name = 'DBMS_RANDOM'

           and type = 'PACKAGE' order by line;

     

       TYPE      num_array

       PROCEDURE terminate

       PROCEDURE seed

       ◆ PROCEDURE initialize

       FUNCTION random

       FUNCTION value RETURN NUMBER;

       FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;

       FUNCTION normal RETURN NUMBER;

       FUNCTION string (opt char, len NUMBER) RETURN VARCHAR2;

     

     

     

     

    2.应用举例

     

    SELECT DBMS_RANDOM.RANDOM FROM DUAL;

     

    再进一步的要求,比如,产生一个0100的随机数,稍微变通一下就可以了:

     

    select abs(mod(dbms_random.random,100)) from dual

     

    3.进阶说明

     

    dbms_random又有新函数了可以实现这些功能

    FUNCTION value RETURN NUMBER;

    FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;

    FUNCTION normal RETURN NUMBER;

    FUNCTION string (opt char, len NUMBER)   RETURN VARCHAR2;

     

    产生NM之间的随机数

    SELECT   DBMS_RANDOM.VALUE(N,M) FROM DUAL;

     

    缺省DBMS_RANDOM.VALUE返回01之间的随机数

     

    SQL> select dbms_random.value, dbms_random.value(55,100) from dual;

    VALUE            DBMS_RANDOM.VALUE(55,100)

    --------------- -----------------------------

    0.714469037747011      68.5593418279622

     

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

    最后,是STRING函数。它返回一个长度达60个字符的随机字符串。

     

    DBMS_RANDOM生成文本和日期值

     

    数字、文本字符串和日期都是用户会在表格里碰到的三种常见数据类型。虽然你可以用PLSQL程序包里的DBMS_RANDOM随机生成数字——它确实能够做到这一点——它还能够随机生成文本和日期值。

     

     

     

    1.产生随机数字

    就让我们先从数字开始。VALUE函数会返回一个大于等于0但是小于1的数,精度是38位。

     

    SELECT DBMS_RANDOM.VALUE FROM DUAL;

     

    对于指定范围内的整数,要加入参数low_valuehigh_value,并从结果中截取小数(最大值不能被作为可能的值)。所以对于099之间的整数,你要使用下面的代码:

     

    SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM DUAL;

     

     

     

     

    2.产生随机文本字符串

    要随机生成文本字符串,就要使用STRING函数并编写代码指定字符串的类型和所希望的长度:

     

    SELECT DBMS_RANDOM.STRING('A', 20) FROM DUAL;

     

    类型代码在《Oracle Database 10g PLSQL程序包和类型参考(Oracle Database 10g PL/SQL Packages and Types Reference)》有说明。

     

    下面是一些类型的代码:

     

    U’用来生成大写字符

     

    L’用来生成小写字符

     

    A’用来生成大小写混合的字符

     

     

     

     

    3.产生随机日期

    Oracle将日期作为过去某个关键日期(如果你好奇的话,我可以告诉你这个日期是公元前471211日)的整数偏移量来保存。这就意味着你可以通过寻找与你希望的起始日期相对应的整数,然后向它加入一个随机的整数来随机生成一个指定范围内的日期。

     

    使用TO_CHAR函数和‘J’格式代码,你可以为今天的日期生成一个内部日期数:

     

    SELECT TO_CHAR(SYSDATE, 'J') FROM DUAL;

     

    例如,要生成一个2003年内的任意日期,你可以首先确定200311日的日期整数;

     

    SELECT TO_CHAR(TO_DATE('01/01/03','mm/dd/yy'),'J')FROM DUAL;

     

    系统给的结果是2452641。所以要生成该年度内的任意日期,我们就要用带有low_value等于2452641high_value等于2452641+364参数的DBMS_RANDOM.VALUE,再把它转换成日期:

     

    SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2452641,2452641+364)),'J') FROM DUAL;

    展开全文
  • Oracle 随机时间,随机时分秒

    千次阅读 2018-10-31 15:42:44
    月份随机: select lpad(floor(dbms_random.value(01,12)),2,'0') from dual; 天数随机:(天数自己设置,2月只有28天) select lpad(floor(dbms_random.value(01,30)),2,'0') from dual; 小时随机:00-24  SELECT ...

    月份随机:
    select lpad(floor(dbms_random.value(01,12)),2,'0') from dual;

    天数随机:(天数自己设置,2月只有28天)
    select lpad(floor(dbms_random.value(01,30)),2,'0') from dual;

    小时随机:00-24 
    SELECT lpad(floor(dbms_random.value(0,24)),2,'0')  FROM dual;

    分/秒随机:00:59
    SELECT lpad(floor(dbms_random.value(0,59)),2,'0')  FROM dual;
    --------------------------------------------------------------------------
    拼接片段

    select (
           to_char(sysdate, 'yyyyMMdd') ||
           lpad(floor(dbms_random.value(0, 24)), 2, '0') ||
           lpad(floor(dbms_random.value(0, 59)), 2, '0') ||
           lpad(floor(dbms_random.value(0, 59)), 2, '0')
           )
      from dual;

    转化为时间:
    select to_date((
           to_char(sysdate, 'yyyyMMdd') ||
           lpad(floor(dbms_random.value(0, 24)), 2, '0') ||
           lpad(floor(dbms_random.value(0, 59)), 2, '0') ||
           lpad(floor(dbms_random.value(0, 59)), 2, '0')
           ),'yyyyMMddhh24miss')
      from dual;
     

    展开全文
  • oracle 随机取数据

    千次阅读 2019-08-27 14:18:00
    无论是在网上还是现实中我都是孤独的 品味孤独,是一种美 ...ORACLE随机查询 1. select * from (select * from tablename order by dbms_random.value) where rownum< N; 注:dbms_ra...
    无论是在网上还是现实中我都是孤独的
    品味孤独,是一种美
    ORACLE随机查询
    1.
    
    select * from (select * from tablename order by dbms_random.value) where rownum< N;
    
    注:dbms_random是一个可以生成随机数值或者字符串的程序包。value()是最常用的,value()的用法一般有两个种,第一 function value return number; 这种用法没有参数,会返回一个具有38位精度的数值,范围从0.0到1.0,但不包括1.0。如下示例:dbms_output.put_line(round(dbms_random.value*100)); 第二种value带有两个参数,第一个指下限,第二个指上限,将会生成下限到上限之间的数字,但不包含上限,如下:dbms_output.put_line(trunc(dbms_random.value(1,101)));
    
     
    
    2.
    
    select  *  from tablename sample(3)  where rownum < 4; 

     

    select empno,empname from ( select empno,empname from emp order by dbms_random.value()) where rownum <3

    转载于:https://my.oschina.net/u/2299924/blog/3098226

    展开全文
  • Oracle随机函数

    2010-11-17 10:15:00
    Oracle随机函数—dbms_random  1.基础认识 关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:  select text from all_source  where name = 'DBMS_RANDOM'  and type = ...

    Oracle随机函数—dbms_random 

    1.基础认识

    关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:
         select text   from all_source
          where name = 'DBMS_RANDOM'
           and type = 'PACKAGE' order by line;

       ◆ TYPE      num_array
       ◆ PROCEDURE terminate
       ◆ PROCEDURE seed
       ◆ PROCEDURE initialize
       ◆ FUNCTION random
       ◆ FUNCTION value RETURN NUMBER;
       ◆ FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
       ◆ FUNCTION normal RETURN NUMBER;
       ◆ FUNCTION string (opt char, len NUMBER) RETURN VARCHAR2;


    2.应用举例

    SELECT DBMS_RANDOM.RANDOM FROM DUAL;
     
    再进一步的要求,比如,产生一个0-100的随机数,稍微变通一下就可以了:
     
    select abs(mod(dbms_random.random,100)) from dual

    3.进阶说明

    dbms_random又有新函数了可以实现这些功能
    FUNCTION value RETURN NUMBER;
    FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
    FUNCTION normal RETURN NUMBER;
    FUNCTION string (opt char, len NUMBER)   RETURN VARCHAR2; 
     
    产生N到M之间的随机数
    SELECT   DBMS_RANDOM.VALUE(N,M) FROM DUAL;
     
    缺省DBMS_RANDOM.VALUE返回0到1之间的随机数

    SQL> select dbms_random.value, dbms_random.value(55,100) from dual;
    VALUE            DBMS_RANDOM.VALUE(55,100)
    --------------- -----------------------------
    0.714469037747011      68.5593418279622
     
    NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。
    最后,是STRING函数。它返回一个长度达60个字符的随机字符串。

    用DBMS_RANDOM生成文本和日期值

    数字、文本字符串和日期都是用户会在表格里碰到的三种常见数据类型。虽然你可以用PL/SQL程序包里的DBMS_RANDOM随机生成数字——它确实能够做到这一点——它还能够随机生成文本和日期值。

    1.产生随机数字
    就让我们先从数字开始。VALUE函数会返回一个大于等于0但是小于1的数,精度是38位。

    SELECT DBMS_RANDOM.VALUE FROM DUAL;

    对于指定范围内的整数,要加入参数low_value和high_value,并从结果中截取小数(最大值不能被作为可能的值)。所以对于0到99之间的整数,你要使用下面的代码:

    SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM DUAL;

    2.产生随机文本字符串
    要随机生成文本字符串,就要使用STRING函数并编写代码指定字符串的类型和所希望的长度:

    SELECT DBMS_RANDOM.STRING('A', 20) FROM DUAL;

    类型代码在《Oracle Database 10g PL/SQL程序包和类型参考(Oracle Database 10g PL/SQL Packages and Types Reference)》有说明。

    下面是一些类型的代码:

    ‘U’用来生成大写字符

    ‘L’用来生成小写字符

    ‘A’用来生成大小写混合的字符

    3.产生随机日期
    Oracle将日期作为过去某个关键日期(如果你好奇的话,我可以告诉你这个日期是公元前4712年1月1日)的整数偏移量来保存。这就意味着你可以通过寻找与你希望的起始日期相对应的整数,然后向它加入一个随机的整数来随机生成一个指定范围内的日期。

    使用TO_CHAR函数和‘J’格式代码,你可以为今天的日期生成一个内部日期数:

    SELECT TO_CHAR(SYSDATE, 'J') FROM DUAL;

    例如,要生成一个2003年内的任意日期,你可以首先确定2003年1月1日的日期整数;

    SELECT TO_CHAR(TO_DATE('01/01/03','mm/dd/yy'),'J')FROM DUAL;

    系统给的结果是2452641。所以要生成该年度内的任意日期,我们就要用带有low_value等于2452641和high_value等于2452641+364参数的DBMS_RANDOM.VALUE,再把它转换成日期:

    SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2452641,2452641+364)),'J') FROM DUAL;

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luojun198610/archive/2009/02/27/3941491.aspx

    展开全文
  • Oracle随机查询n条数据

    千次阅读 2017-11-30 08:30:33
    select empno,empname from ( select empno,empname from emp order by dbms_random.value()) where rownum 上述的3就是随机取的n,所以这里的3可以随意赋值,注意这里必须是先排序再随机取值。
  • ORACLE随机启动

    2011-09-05 14:16:46
    关于oracle在linux系统下安装后,如何在系统重启的情况下让服务自动启动起来,网上有很多的教程和现成的脚本,这里只是个人工作中的一点经验。 以redhat as4和oracle 10g为例。单机在安装过程依照oracle官方的...
  • oracle随机生成条数

    2017-07-31 10:15:10
    --oracle随机生成条数 -- SELECT * FROM (SELECT * FROM table ORDER BY DBMS_RANDOM.RANDOM()) WHERE ROWNUM 10 table=表名 10=需要生成的条数
  • Oracle随机函数 转

    2011-08-31 15:59:04
    Oracle随机函数—dbms_random  1.基础认识 关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:  select text from all_source  where name = 'DBMS_RANDOM'
  • ORACLE随机取记录

    2011-01-21 14:00:00
    oracle随机取数据,通过随机函数包dbms_random,按随机排序实现,如下 <br />随机取几条记录 --方法一 select * from (select * from t_sms_game_down t order by dbms_random.value) where ...
  • dbms_random是oracle提供的一个随机函数包,以下介绍一些dbms_random的常用示例: dbms_random.value用法: 生成一个大于等于0,小于等于1的38位小数 代码如下: — FUNCTION value RETURN NUMBER; select dbms_...
  • Oracle 随机取数据

    2013-12-10 10:21:09
    Oracle 随机取数据 select * from ( select * from hr.employees order by dbms_random.value ) where rownum = 1;   注:dbms_random包需要手工安装,位于$ORACLE_HOME/rdbms/admin/dbmsrand.sql ...
  • oracle 随机排序

    2009-05-13 11:15:00
    select * from ta order by dbms_random.value();
  • ORACLE随机排序

    千次阅读 2009-04-12 12:41:00
    SQL> select * from ta order by dbms_random.value(); A B C D E---------- ---------- ---------- ---------- ---------- 1 2 3 
  • Oracle 随机获取N条数据

    千次阅读 2014-08-19 15:17:56
    Oracle 随机获取N条数据  当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目的 1) select * ...
  • Oracle随机生成数

    2019-04-09 10:35:18
    Oracle随机生成8位整数 方式一: select TRUNC(dbms_random.value(10000000,20000000)) as id from dual; 方式二: select substr(cast(dbms_random.value as varchar2(38)),3,8) from dual 随机生成GUID ...
  • Oracle随机抽取数据

    千次阅读 2017-12-21 17:22:05
    1.SAMPLE  如果表T1有数据块B1,B2  B1有记录R1,R2,R3,R4,R5  B2有记录R6,R7,R8,R9,R10  如果使用如下SQL选择50%的数据  select * from t1 sample block(50) ... 也可能是数据块B2的
  • 最近在准备压测数据时需要从客户表中随机获取一些客户,通常有如下方式: 使用 sample select * from ( select * from cus sample(10) order by dbms_random.value() ) t0 where 1=1 and rownum <= ...
  • oracle 随机选择一条记录 SELECT * FROM (SELECT * FROM t_enterprise_info order by dbms_random.value) WHERE rownum =1 oracle选择前10条记录  select * from test where rownum 原文地址:...
  • Oracle随机抽取N条记录

    千次阅读 2014-07-30 15:24:41
    这两天发了一个贴子,寻找比较好的办法随机取出表的一条记录 地址见:http://www.oracle.com.cn/viewthread.php?tid=130433&extra=page%3D1 里面讨论了一些方法,其中版主valenwon加一个ROWNUM的字段并加索引是...
  • 要求男女各五条;上语文课的3人,上数学可的7人;一班占10%,二班20%、其余的是其他班;2人是10岁,另外的12岁 随机的10条数据不能有重复的,这只是我举出的一个例子,求大神们的做法,急急急!!!
  • 这两天发了一个贴子,寻找比较好的办法随机取出表的一条记录地址见:http://www.oracle.com.cn/viewthread.php?tid=130433&extra=page%3D1里面讨论了一些方法,其中版主valenwon加一个ROWNUM的字段并加索引是一种...
  • 基于Oracle访问数据不同方法:包含全表扫描和采样表扫描,介绍三种随机取样方式,并分别从随机性和性能(读取时间)作比较。
  • Oracle随机选择一条记录SQL: SELECT * FROM (SELECT * FROM t_enterprise_info order by dbms_random.value) WHERE rownum =1 转载于:https://www.cnblogs.com/xusweeter/p/5837430.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,658
精华内容 24,263
关键字:

oracle随机事件