CREATE OR REPLACE PACKAGE SYS.dbms_random AS
------------
-- OVERVIEW
--
-- This package should be installed as SYS. It generates a sequence of
-- random 38-digit Oracle numbers. The expected length of the sequence
-- is about power(10,28), which is hopefully long enough.
--
--------
-- USAGE
--
-- This is a random number generator. Do not use for cryptography.
-- For more options the cryptographic toolkit should be used.
--
-- By default, the package is initialized with the current user
-- name, current time down to the second, and the current session.
--
-- If this package is seeded twice with the same seed, then accessed
-- in the same way, it will produce the same results in both cases.
--
--------
-- EXAMPLES
--
-- To initialize or reset the generator, call the seed procedure as in:
-- execute dbms_random.seed(12345678);
-- or
-- execute dbms_random.seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS'));
-- To get the random number, simply call the function, e.g.
-- my_random_number BINARY_INTEGER;
-- my_random_number := dbms_random.random;
-- or
-- my_random_real NUMBER;
-- my_random_real := dbms_random.value;
-- To use in SQL statements:
-- select dbms_random.value from dual;
-- insert into a values (dbms_random.value);
-- variable x NUMBER;
-- execute :x := dbms_random.value;
-- update a set a2=a2+1 where a1 < :x;
-- 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 );
-- Get a random 38-digit precision number, 0.0 <= value < 1.0
FUNCTION value RETURN NUMBER ;
PRAGMA restrict_references ( value , WNDS );
-- get a random Oracle number x, low <= x < high
FUNCTION value (low IN NUMBER , high IN NUMBER ) RETURN NUMBER ;
PRAGMA restrict_references ( value , WNDS );
-- get a random number from a normal distribution
FUNCTION normal RETURN NUMBER ;
PRAGMA restrict_references (normal, WNDS );
-- get a random string
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
*/
RETURN VARCHAR2 ; -- string of <len> characters (max 60)
PRAGMA restrict_references ( string , WNDS );
-- Obsolete, just calls seed(val)
PROCEDURE initialize(val IN BINARY_INTEGER );
PRAGMA restrict_references (initialize, WNDS );
-- Obsolete, get integer in ( -power(2,31) <= random < power(2,31) )
FUNCTION random RETURN BINARY_INTEGER ;
PRAGMA restrict_references (random, WNDS );
-- Obsolete, does nothing
PROCEDURE terminate;
TYPE num_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER ;
END dbms_random;
相关推荐
Oracle的DBMS_RANDOM是一个强大的包,它提供了多种用于生成随机数据的函数,广泛应用于测试、数据分析、模拟等场景。在Oracle数据库中,你可以利用这些函数来创建不可预测的数据,这对于测试应用程序或者填充测试...
9. 随机函数:DBMS_RANDOM.RANDOM()生成随机数,DBMS_RANDOM.VALUE()生成指定范围内的随机数。 10. 连接查询和嵌套查询中使用的函数,如CONNECT_BY_ROOT()和LEVEL用于层次查询,而子查询中可能用到的任何函数,如...
标签"Oracle 自定义函数"强调了这个函数是在Oracle环境中实现的,这意味着它必须遵循Oracle的语法和规范,且可以被其他Oracle SQL查询或PL/SQL程序调用。 从文件名"统一代码Oracle函数效验"我们可以推测,压缩包内...
【Oracle罚函数】Oracle罚函数是一种在约束优化问题中广泛使用的数学工具,它通过引入一个惩罚项来处理约束条件的违反。在优化过程中,如果一个解违反了约束,Oracle罚函数会增加相应的惩罚,使得违反约束的解在目标...
本篇文章将深入探讨如何使用Oracle内置函数以及自定义函数来实现这一功能。我们将结合具体的代码示例来理解这一过程。 首先,Oracle提供了一些内置的日期函数,如`SYSDATE`获取当前日期,`ADD_MONTHS`增加月份,`...
Oracle数据库系统是一个广泛使用的商业关系型数据库管理系统(RDBMS),它提供了多种内建的函数,以便于用户在进行数据查询、数据处理、以及数据转换等操作时能够更加便捷。本文档将详细介绍初学者在学习Oracle...
在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 首先,我们可以使用 Oracle 自带...
本文将详细介绍Oracle数据库中实现这一功能的方法,包括函数的结构、工作原理以及实际应用场景。 #### 函数结构与原理 给定的代码片段展示了如何在Oracle数据库中创建一个名为`ZLSPELLCODE`的函数,用于获取汉字...
除了使用 DBMS_RANDOM 包外,还有其他方法可以生成随机数,例如使用 Oracle 的内置函数、使用 PL/SQL 语言等。这些方法可以根据实际情况选择。 Oracle 提供了多种方法来生成随机数,每种方法都有其优缺点,选择合适...
在数据库管理领域,SQL Server 和 ...这些函数在 SQL Server 和 Oracle 中的差异主要体现在语法和命名上,但功能基本一致,使得在两个系统之间进行数据迁移或查询时,开发人员需要了解这些差异以便进行相应的转换。
### Oracle随机启动知识点详解 #### 一、Oracle随机启动概述 在Linux环境下,为了实现Oracle数据库服务能够在系统启动时自动启动,通常会采用特定的方法来配置。本篇将重点介绍如何通过修改`/etc/oratab`文件以及...
Oracle提供了`DBMS_RANDOM.VALUE(0,1)`生成0到1之间的随机浮点数。 13. **取符号**: `SIGN(-8)`函数返回-1,表示负数;对于正数返回1,对于0返回0。 14. **圆周率**: Oracle中没有内置的PI函数,但可以使用`...
在Oracle数据库管理中,有时我们需要向数据库表中插入大量的随机数据来进行测试、演示或者数据模拟分析等工作。本篇文章将详细介绍如何利用自定义的Oracle函数来实现这一功能。 #### 自定义Oracle函数 为了实现向...
模拟器的特点在于它能够随机出题,这意味着每次练习时的题目顺序和选项都会有所不同,这种设计有助于考生在不同的环境下检验自己的理解和应变能力。用户需要手动添加考题和答案,这既是学习过程的一部分,也使得用户...
在SQL Server和Oracle数据库系统中,函数是进行数据操作和计算的重要工具。下面将详细对比这两者中的一些常用函数。 1. **绝对值** - SQL Server: `ABS(-1)` 返回-1的绝对值,即1。 - Oracle: `ABS(-1)` 与SQL ...
本文将深入探讨如何在Oracle数据库环境下实现数据抽样,具体涵盖简单随机抽样、系统抽样、整群抽样以及分层抽样四种常见抽样方法,并详细解析Oracle特有的抽样功能。 ### 一、抽样方法概览 #### 1. 简单随机抽样 ...
ID ID(Hex) Name ID ID(Hex) Name ID ID(Hex) Name 1 0001 US7ASCII 2 0002 WE8DEC 3 0003 WE8HP 4 0004 US8PC437 5 0005 WE8EBCDIC37 6 0006 WE8EBCDIC500 7 0007 WE8EBCDIC1140 8 0008 WE8EBCDIC285 9 0009