package(dbms_random)随机取时间

来源:互联网 发布:深圳pmp培训机构 知乎 编辑:程序博客网 时间:2024/06/17 05:24

      取一天内的时间段间的任意时间,用dbms_random.value实现。(例如:去早上5:00到8:00间的任意时间)

select trunc(sysdate) + dbms_random.value(300, 480) / 1440 from dual;

既然这里用到了dbms_random包,就讲讲这个package里的object。

SQL> desc dbms_random
PROCEDURE INITIALIZE
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 VAL                            BINARY_INTEGER          IN   
FUNCTION NORMAL RETURNS NUMBER
FUNCTION RANDOM RETURNS BINARY_INTEGER
PROCEDURE SEED
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 VAL                            BINARY_INTEGER          IN   
PROCEDURE SEED
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 VAL                            VARCHAR2                IN   
FUNCTION STRING RETURNS VARCHAR2
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 OPT                            CHAR                    IN   
 LEN                            NUMBER                  IN   
PROCEDURE TERMINATE
FUNCTION VALUE RETURNS NUMBER
FUNCTION VALUE RETURNS NUMBER
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 LOW                            NUMBER                  IN   
 HIGH                           NUMBER                  IN   

SQL> spool off

其中INITIALIZE,random,terminate在11g中已废弃。

用的最多的就是value函数。

随机取某个表的n行数据:select * from (select * from table_name order by dbms_random.value) where rownum <= n;

 

0 0
原创粉丝点击