Oracle随机函数的用法

简单得说,Oracle 取随机数,大多是通过调用dbms_random包产生,通过dbms_random包产生随机数的方法大致有下面4种:

1、dbms_random.normal

这个函数不带参数,用来产生一个介于-1到1之间的38位精度的随机数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。

简单测试了一下,产生100000次最大能到5左右:

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

2、dbms_random.random

这个也没有参数,返回一个从-power(2,31)到power(2,31) (--2的31次方)的整数值

3、dbms_random.value

这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位精度的随机数

SQL > select dbms_random.value from dual;

 

              VALUE

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

     0 .58983014999643548701631750396301271752

第二种是加上两个参数a、b,则返回值在a、b之间的38位精度的随机数

    SQL > select dbms_random.value(100,500) value from dual;
                  VALUE
    -----------------------------------------
      412.150194612502916808701157054098274240

注意:无论前面几位,小数点之后都是38位

此外,若想获得整数:ROUND(dbms_random.value(1,500),0)

4、dbms_random.string

该函数产生一个随机字符串,必须带有两个参数,语法为:dbms_random.string(opt in CHAR,len in NUMBER)

参数len指定生成的字符串的长度(最大60);

参数opt指定生成的字符串的样式,允许的取值及其表示的含义如下表所示:


取值


含义


‘u’或’U’


返回一个由大写字母组成的字符串


‘l’或’L’


返回一个由小写字母组成的字符串


‘a’或’A’


返回一个由大写字母和小写字母组成的字符串


‘x’或’X’


返回一个由大写字母和数字组成的字符串


‘p’或’P’


返回一个由任意的可打印字符组成的字符串

例如:要产生一个长度为6且只包括大写字母的字符串,可以这样写: DBMS_RANDOM.STRING(‘U‘,6)

SQL> SELECT DBMS_RANDOM.string (‘U‘, 6) FROM DUAL;    
    DBMS_RANDOM.STRING(‘U‘,6)     
--------------------------------------
        ECQALV
时间: 2024-10-19 10:24:10

Oracle随机函数的用法的相关文章

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

Oracle %rowtype的用法

Oracle %rowtype的用法 编程语言 分享到: 专业回答 茗茶堂 2009-04-13 20:51 表示该类型为行数据类型,存储的是一行数据,一行数据里可以有多列,类似于表里的一行数据,也可以是游标里的一行数据,如:vs_row1 表%rowtype;vs_row2 游标%rowtype;

[转]ORACLE的ProC用法讲解

pro*c是高级的用法,OCI是oracle的基础用法 如何编译.pc文件: proc code=cpp  parse=none iname=filename.pc oname=filename.cpp 一, 首先要包涵头文件#include 这个头文件 二,  在声明宿主变量之前一定要先定义struct sqlca sqlca;这个变量. 三, 所有与oracle数据库SQL语句有关的变量必须在前面声明为宿主变量分配空间才可以使用, 宿主变量只能是oracle支持的数据类型,一般是基本类型的,

Oracle Hint的用法

1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BS

oracle with as用法

with as语法 –针对一个别名 with tmp as (select * from tb_name) –针对多个别名 with    tmp as (select * from tb_name), tmp2 as (select * from tb_name2),    tmp3 as (select * from tb_name3),    … 1 2 3 4 5 6 7 8 9 --相当于建了个e临时表 with e as (select * from scott.emp e wher

oracle trim函数用法详解

在oracle数据库中,trim一般都是用在删除字符串两边的空格.实际上,trim也可以用来删除字符串两边的指定字符.并且trim指定删除的字符串只能是单个字符Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法作了详尽的阐述说明,希望可以让您对Oracle TRIM函数有更深的认识. 如果提到Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种.然而Oracle TRIM函数其实是具有删除“任意指定”字

ORACLE 中ROWNUM用法总结!

ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=),并非说用>,& gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明 假设某个表 t1

[转]Oracle dbms_random函数用法快速生成多条测试数据

做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试数据的方法. 首先模拟一下100条的随机数据 [sql] view plaincopyprint? select rownum as id, to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime, trunc(dbms_rand

Oracle substr函数用法

oracle的substr函数的用法  取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] )  如:      substr('This is a test', 6, 2)     would return 'is'      substr('This is a test', 6)     would return 'is a test'      substr('TechOnTheNet', -3, 3)