`
sckjyxgs
  • 浏览: 23926 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle认证:Oracle随机函数调用

 
阅读更多
 Oracle随机函数调用。简单得说,通过dbms_random包调用随机数的方法大致有4种:
  1、dbms_random.normal
  这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。
  简单测试了一下,产生100000次最大能到5左右:
  SQL》 declare
  2  i number:=0;
  3  j number:=0;
  4 begin
  5  for k in 1 .。 100000 loop
  6  i:= dbms_random.normal;
  7   if i 》 j
  8   then j:=i;
  9   end if;
  10  end loop;
  11  dbms_output.put_line(j);
  12 end;
  13 /
  5.15325081797418404136433867107468983182
  PL/SQL procedure successfully completed
  2、dbms_random.random
  这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值
  3、dbms_random.value
  这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数
  SQL 》 column value format 9.99999999999999999999999999999999999999
  SQL 》 select dbms_random.value from dual;
  VALUE
  -----------------------------------------
  。58983014999643548701631750396301271752
  第二种是加上两个参数a、b,则返回值在a、b之间的38位小数
  SQL 》 column value format 999.999999999999999999999999999999999999
  SQL 》 select dbms_random.value(100,500) value from dual;
  VALUE
  -----------------------------------------
  412.150194612502916808701157054098274240
  注意:无论前面几位,小数点之后都是38位
  4、dbms_random.string
  这个函数必须带有两个参数,前面的字符指定类型,后面的数值指定位数(最大60)
  类型说明:
  ‘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 》 column value format a30
  SQL 》 select dbms_random.string(‘u’,30) value from dual;
  VALUE
  VTQNLGISELPXEDBXKUZLXKBAJMUTIA
  SQL 》 select dbms_random.string(‘l’,30) value from dual;
  VALUE
  ------------------------------
  uqygsbquingfqdytpgjvdoblxeglgu
  SQL 》 select dbms_random.string(‘a’,30) value from dual;
  VALUE
  ------------------------------
  NGTGkQypuSWhBfcrHiOlQwOUXkqJjy
  SQL 》 select dbms_random.string(‘x’,30) value from dual;
  VALUE
  ------------------------------
  UVWONYJMXT31VEFPD736WJCJ5QT6BD
  SQL 》 select dbms_random.string(‘p’,30) value from dual;
  VALUE
  ------------------------------
  :mak$(WT4M_7c/+f[_XUscf$P Zcq{

       5、关于seed
  可以设置seed来确定随机数的起始点,对于相同的seed而言,随机数的任意一次变化都将是确定的。
  就是说,如果在某一时刻调用了seed,之后第一次产生的随机数是4,第二次是6,第三次是1,那么当你再次调用相同的seed之后,一次产生的随机数还是4、6、1
  seed有两种,一种是数值型的,一种是字符型(最大长度2000)的
  —— Seed with a binary integer
  PROCEDURE seed(val IN BINARY_INTEGER );
  PRAGMA restrict_references (seed, WNDS );
  —— Seed with a string (up to length 2000)
  PROCEDURE seed(val IN VARCHAR2 );
  PRAGMA restrict_references (seed, WNDS );
  6、关于initialize
  一个integer参数,注释说的很清楚了:
  —— Obsolete, just calls seed(val)
  PROCEDURE initialize(val IN BINARY_INTEGER );
  PRAGMA restrict_references (initialize, WNDS );
  sys_guid()
  官方文档的说明如下:
  SYS_GUID generates and returns a globally unique identifier (RAW value) made up of 16 bytes. On most platforms, the generated identifier consists of a host identifier, a process or thread identifier of the process or thread invoking the function, and a nonrepeating value (sequence of bytes) for that process or thread.
  简单得说就是,随机生成一个32位的RAW,但是后面的那段经过实验发现不是这么回事,每次生成的字符串都千差万别,不知道为什么。
  在具体应用中,除了可以用来插入生成唯一的标识符外,还可以用来取表中的任意一条记录:
  select * from ( select * from t2 order by sys_guid()) where rownum = 1 ;
  powershell
分享到:
评论

相关推荐

    Oracle统一社会信用代码自定义效验函数

    标签"Oracle 自定义函数"强调了这个函数是在Oracle环境中实现的,这意味着它必须遵循Oracle的语法和规范,且可以被其他Oracle SQL查询或PL/SQL程序调用。 从文件名"统一代码Oracle函数效验"我们可以推测,压缩包内...

    Oracle 与 SQL Server 常用函数对比

    根据提供的文件信息,本文将对Oracle与SQL Server中的常用数学函数进行对比分析。这些函数包括绝对值、向上取整、向下取整、截断、四舍五入、指数计算、自然对数、以10为底的对数、平方、平方根、幂运算以及随机数和...

    Oracle插入随机数

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

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

    4. 调用 DBMS_RANDOM.VALUE 函数生成随机数,并将其存储在临时表 tmp_2 中。 5. 将临时表 tmp_1 和 tmp_2 相关联,取得符合条件的随机记录。 6. 最后,删除临时表 tmp_1、tmp_2 和序列号 tmp_id。 例如,以下是使用...

    Oracle随机函数之dbms_random使用详解

    Oracle的DBMS_RANDOM是一个强大的包,它提供了多种用于生成随机数据的函数,广泛应用于测试、数据分析、模拟等场景。在Oracle数据库中,你可以利用这些函数来创建不可预测的数据,这对于测试应用程序或者填充测试...

    Oracle创造测试数据

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

    Oracle EBS 开发笔记

    - **常用函数**:列出Oracle数据库中常用的函数及其用途。 - **substr函数**:用于提取字符串的子串。 - **Lpad/Rpad函数**:左填充或右填充字符串。 - **日期函数**:处理日期和时间数据。 - **随机取前10条...

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

    Oracle提供了几个内置函数来帮助我们生成随机的小数、整数、字符串以及日期。下面我们将详细讨论这些函数的使用方法。 1. 随机小数:`dbms_random.value(low, high)` 这个函数用于生成一个在`low`(包含)和`high`...

    Oracle11g设计与开发教程课后习题

    8. 数据类型和控制结构:PL/SQL数据类型包括DATE,标识符最大长度为30,BLOB用于存储二进制大对象,EXIT用于跳出循环,CEIL函数返回大于或等于给定数值的最小整数。 9. 数据字典视图:V$CONTROLFILE提供控制文件...

    ORACLEEBS_FORM

    - **常用函数**:文档列出了多种Oracle数据库中的常用函数,如`substr`、`lpad/rpad`等。 - **日期函数**:包括`trunc`等用于日期处理的函数。 - **随机取前10条不同的记录**:介绍了一种获取随机样本的方法。 - ...

    PL/SQL Developer 中文帮助文档

    - **工具-数据生成器**:生成随机数据以填充测试表。 - **工具-任务列表**:管理任务列表。 - **工具-重新调用声明**:快速访问最近使用的对象。 - **文件-目录**:配置文件系统的路径和目录。 - **文件-扩展名...

    Oracle-ERP(NEW)笔记

    - **随机取样**:学习如何随机选取数据库中的记录,适用于大数据分析场景。 - **TRUNC函数应用**:掌握日期截断与数值截断的使用场景。 - **表修改语法**:熟悉修改表结构的常用SQL语法,便于数据模型的调整。 - **...

    甲骨文 PAC 测试参考题目 oracle pac --Computer Science Knowledge

    - **rand(0,1)**:随机函数依赖于种子或内部状态,不是引用透明的。 4. **动态数据结构**: 对于需要动态插入和删除数据项的应用,适合的数据结构是: - **栈(Stack)**:后进先出,不适合频繁插入和删除。 - ...

    oracle pl_sql_developer用户手册中文版

    - **创建程序**:支持快速创建新的 PL/SQL 单元,如存储过程、函数等。 - **保存程序**:提供了多种方式来保存开发中的程序代码,便于后续的维护和版本控制。 - **修改程序**:集成了强大的代码编辑功能,支持语法...

    Oracle Solaris 11 Linker and Libraries Guide-470

    1. **链接过程**:详细解释了链接器如何解析依赖关系,将函数调用和全局变量引用与相应的定义相匹配,以及如何处理重定位信息。 2. **静态链接与动态链接**:介绍静态链接(生成独立的可执行文件)和动态链接(运行...

    Oracle维护常用SQL语句

    在Oracle中,随机抽取数据可以通过`SYS_GUID()`或`DBMS_RANDOM.VALUE`函数实现。以下是两种方法: 1. 使用`SYS_GUID()`函数: ```sql SELECT * FROM ( SELECT * FROM TABLENAME ORDER BY SYS_GUID() ) WHERE ...

Global site tag (gtag.js) - Google Analytics