如何使用dbms_random,如何返回一组随机数?

suntsang 2002-09-27 05:37:16
其他函数也可:)
...全文
270 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
suntsang 2002-09-28
  • 打赏
  • 举报
回复
SQL> select ceil(dbms_random.value(1,(select count(*) from cat)))"RandomNum" from dual;

RandomNum
----------
330

真是想偷懒都不行?
而且这组数中不允许有重复的值!!!
zhaoyongzhu 2002-09-28
  • 打赏
  • 举报
回复
SQL> select dbms_random.value(1,100) from dual;

DBMS_RANDOM.VALUE(1,100)
------------------------
80.687389

至于返回一组随机数,dbms_random好像没有这个function吧。做个循环每次返回一个不就是一组了吗^_^
suntsang 2002-09-28
  • 打赏
  • 举报
回复
up
对了应该是一定范围内的一组随机数,譬如1-100
suntsang 2002-09-28
  • 打赏
  • 举报
回复
up
没人可以解决???
suntsang 2002-09-27
  • 打赏
  • 举报
回复
就是一次返回多个随机数啊:)
jlandzpa 2002-09-27
  • 打赏
  • 举报
回复
什么问题呀?
17:44:03 jlanzpa817>select dbms_random.random from dual;

1328509000

已用时间: 00: 00: 04.46
17:48:57 jlanzpa817>select dbms_random.random from dual;

-979702366

已用时间: 00: 00: 06.20
18:15:00 jlanzpa817>/

-247042050

已用时间: 00: 00: 05.38
suntsang 2002-09-27
  • 打赏
  • 举报
回复
回:zhaoyongzhu(zhaoyongzhu)
我要的是一组随机数啊

回:jlandzpa(欧高黎嘉陈)
ORACLE 9I的光盘我有的,就是用的有问题才发贴

还是感谢两位
jlandzpa 2002-09-27
  • 打赏
  • 举报
回复
DBMS_RANDOM
The DBMS_RANDOM package provides a built-in random number generator. It is faster than generators written in PL/SQL because it calls Oracle's internal random number generator.

Requirements
DBMS_RANDOM must be initialized prior to calling the random number generator. The generator produces 8 digit integers. If the initialization subprogram is not called, then the package raises an exception.

Summary of Subprograms
Table 30-1 DBMS_RANDOM Package Subprograms
Subprogram Description
INITIALIZE procedure

Initializes the package with a seed value.

SEED procedure

Resets the seed.

RANDOM function

Gets the random number.

TERMINATE procedure

Closes the package.



INITIALIZE procedure
To use the package, first call the initialize subprogram with the seed to use.

Syntax
DBMS_RANDOM.INITIALIZE (
seed IN BINARY_INTEGER);


--------------------------------------------------------------------------------
Note:
Use a seed that is sufficiently large, more than 5 digits. A single digit might not return sufficiently random numbers.

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




Parameters
Table 30-2 INITIALIZE Procedure Parameters
Parameter Description
seed

Seed number used to generate a random number.



SEED procedure
This procedure resets the seed.

Syntax
DBMS_RANDOM.SEED (
seed IN BINARY_INTEGER);

Parameters
Table 30-3 INITIALIZE Procedure Parameters
Parameter Description
seed
Seed number used to generate a random number.



RANDOM function
This function gets the random number.

Syntax
DBMS_RANDOM.RANDOM
RETURN BINARY_INTEGER;

Parameters
None.

Example
my_random_number := Random;

TERMINATE procedure
When you are finished with the package, call the TERMINATE procedure.

Syntax
DBMS_RANDOM.TERMINATE;

Parameters
None.

zhaoyongzhu 2002-09-27
  • 打赏
  • 举报
回复
select dbms_random.random from dual;
公式语言函数简介 -------------------------------------------------------------------------------- @Abs 返回一个数字的绝对值 @Abstrcat 将一个或多个域中的内容缩写 @Accessed 指出最后一次访问(即读取或编辑)该文档的时间和日期 @Acos 使用角度的余弦,计算反余弦 @Adjust 按照指定的年月日小时分钟秒来调整指定的时间-日期值。调整的值可正可负 @All 需要 SELECT 语句的公式中使用 @All @AllChildren 包含父文档的所有满足选择标准的“答复”文档 @AllDescendants 包含所有满足选择标准的父文档的答复文档以及答复的答复文档 @Ascii 将一个 LMBCS (Lotus 多字节字符集)字符串转换成一个 ASCII 字符串 @Asin 使用角度的正弦,计算反正弦 @Atan 使用角度的正切,计算反正切 @Atan2 使用角度的 y/x 正切,计算反正切 @AttachmentLengths 返回表示当前文档中各个附件长度的数字或数字列表 @AtachmentNames 返回附加到文档中的文件的操作系统文件名 @Attachments 返回附加到文档中的文件数目 @Author 返回包含文档姓名的文本列表 @Begins 确定一个指定的子串是否保存在另一个字符串的开头 @Certificate 从公用通讯录的“已验证的公用密钥”中提取信息 @Char 从公用通讯录的“已验证的公用密钥”中提取信息 @CheckAlarms 触发闹铃守护程序检查邮件文件中是否有新的闹铃信息 @ClientType 返回文本字符串以从WWW客户机中区分 Notes 客户机 @Command 执行一个 Notes 命令 @Contains 确定某个子串是否包含在一个字符串中 @Cos 余弦函数 @Created 返回创建此文档时的时间-日期值 @Date 将数字转换成时间和日期的不同部分;然后返回时间-日期值 @Day 从指定日期值中提取天的部分 @DbColumn 1 从当前或别的 Notes 数据库的视图或文件夹里查找并返回一个完整的列值 2 使用数据源信息激来激活 ODBC 驱动程序 @DbCommand 给出 ODBC.INI 文件中的数据源信息,利用这些信息来激活 ODBC 驱动器。驱动器寻找指定的 DBMS,将命令送去进行处理,然后返回该命令检索到的数据 @DbExists 给定一个服务器和文件名,或复本标识符,查明该数据库是否存在 @DbLookup 1 给定一个值,在一个指定的视图(或文件夹)里查找,找出视图里的第一个排序列里包含该值的所有文档。对每个选中的文档,@DbLookup 返回视图里指定列的内容,或者返回一个指定域的内容 2 使用 ODBC.INI 文件里的数据源信息激活恰当的 ODBC 驱动器。驱动器定位指定的 DBMS,表和列,并对那些关键字列的值和指定的关键字匹配的记录返回该列的值。您还可以定义返回的列表是否排序,是否删除重复值以及如何处理空值 @DbManager 返回当前对数据库有“管理者”存取权限的用户、群组和服务器的列表 @DbName 返回当前 Notes 服务器和数据库的名称 @DbTitle 返回当前数据库的标题 @DDEExecute 将指定的命令串传递给由一个对话标识符标识的 DDE 应用程序,@DDEExecute 通常和 @DDEInitiate 与 @DDETerminate 配合使用 @DDEInitiate 初始化与 DDE 服务器的一个对话,并返回该对话的标识符 @DDEPoke 将未申请的数据存储到 DDE 服务器应用程序中的特定位置 @DDETerminate 中止与 DDE 应用程序的对话 @DEFAULT 为域指定缺省值。在公式的计算过程中,如果文档的某个域不存在,就用 DEFAULT 作为它的值。允许给域指定动态的缺省值 @DeleteDocument 在代理中运行时此函数时,删除正在被处理的文档 @DeleteField 在代理中运行该函数,@DeleteField 将删除指定的域 @DialogBox 弹出一个对话框,用指定的表单显示当前的文档 @Do 从左到右计算表达式,并返回列表中最后一个表达式的值 @DocChildren 返回当前文档(或分类)下的子文档(或子分类)的个数 @DocDescendants 在一个列公式或窗口标题公式中返回属于当前文档或分类的子文档或子分类的数目 @DocFields 返回文档中所有域的列表 @DocLength 返回文档的字节数 @DocLevel 返回表示文档或分类级别的字符串 @DocMark 在运行公式的代理中,表明您是否想保存对文档的改变 @DocNumber 在列公式或窗口标题公式中,返回一个代表当前文档或分类的项目编号的字符串v @DocParentNumber 在列公式或窗口标题公式中,返回一个视图项目的上一层项目的编号 @DocSiblings 在列公式或窗口标题公式中,返回与某个视图(文档或分类)处于同级的项目数 @DocumentUniqueID 32 个字母和数字组合,在数据库的多个复本中用来唯一标识某个文档 @Domain 返回 NOTES.INI 或 Notes Preferences 文件里当前用户的 Notes 网络域名 @EditECL 为指定的通讯录和名称显示“工作站安全性:执行控制列表”对话框,使您可以修改ECL @EditUserECL 为指定的通讯录和名称显示“工作站安全性:执行控制列表”对话框,使您可以在当前工作站上改变ECL @Elements 计算列表中文本、数字、时间-日期的个数 @EnableAlarms 启动或停止后台警告守护进程 @Ends 确定子串是否在字符串的后面 @ENVIRONMENT 设置环境变量并存储在NOTES.INI或Notes Preferences里 @Environment 设置或返回存储在NOTES.INI或Notes Preferences中的环境变量 @Error 允许您在表达式中产生错误条件 @Exp 计算以e为幂,以指定的数为指数的值 @Explode 返回由文本串或日期范围中的元素所组成的文本列表 @Failure 若输入的数值不符合条件,返回您给出的消息 @False 返回数字 0, 该函数等价于 @No @FIELD 在给文档里的域赋值时(与临时域相对)必须要用到 FIELD 关键字 @GetDocField 给定唯一的文档标识符,返回文档中某个域的内容 @GetPortsList 返回激活或禁止的端口的列表 @GetProfileField 从简要表文档中获得域,并缓存这个域的值,以备会话使用 @Hour 返回时间-日期中的小时部分 @If 判定一个条件 @Implode 连接文本列表中的成员,并返回文本字符串 @InheritedDocumentUniqueID 当前文档继承的父文档的唯一标识符 @Integer 将数字或数字列表截断成一个整数,去掉其小数部分 @IsAgentEnabled 判定定时运行的代理是否有效 @IsAvailable 查找文档中是否存在某个域 @IsCategory 在列公式中,如果视图中某一行为一个分类,则返回指定的字符串 @IsDocBeingEdited 检查文档的当前状态,如果文档正在被编辑,则返回1(True) @IsDocBeingLoaded 查看文档的当前状态,如果文档正被装入内存并显示,则返回1(True) @IsDocBeingMailed 检查文档的当前状态,如果文档正在被邮寄,则返回 1 (True) @IsDocBeingRecalculated检查文档的当前状态,如果文档中的公式正在被计算,则返回 1 (True) @IsDocBeingSaved 检查文档的当前状态。如果正在保存文档,则返回 1 (True) @IsDocTruncated 说明当前文档是否被截短过 @IsError 如果数值是一个 @ERROR 值,则返回 1 (True) @IsExpandable 在列公式中,如果视图中的某一行是可展开的,则返回某个特定的字符串 @IsMember 指出一段文本(或文本列表)是否包含在另外一个文本列表中 @IsModalHelp 说明当前文档是否为一个模态帮助文档 @IsNewDoc 对于一个正在编辑的文档,指出该文档是否已经存盘 @IsNotMember 判断一段文本(或文本列表)是否不包含在另一个文本列表中 @IsNumber 判断某个值是否为一个数字(或数字列表) @IsResponseDoc 判断某个文档是否为答复文档 @IsText 判断某个值是否为文本(或文本列表) @IsTime 判断一个值是否为时间-日期值(或时间-日期列表) @IsUnavailable 判断域名是否存在于文档里 @Isvalid 在当前表单执行所有检验公式 @Keywords 给定两个文本列表,返回第一个列表和第二个列表之间重叠的部分 @Left 从左到右搜索字符串,并返回字符串中最左边的几个字符 @LeftBack 从右至左搜索字符串并返回子串 @Length 返回文本字符串中字符的个数 @Like 将字符串和样本串进行匹配将字符串和样本串进行匹配 @Ln 返回一个以e为底的自然对数 @Log 返回大于 0 的数的常用对数 @LowerCase 将指定字符串里的大写字母转换成小写 @MailDbName 返回 Domino 服务器的名称和当前用户的邮件数据库的名称 @MailEncryptSavedPreference判断用户是否在“用户惯用选项”对话框选择了“加密保存的邮件” @MailEncryptSentPreference判断用户是否在“用户惯用选项”对话框中选择了“加密发送邮件” @MailSavePreference 判断用户在“用户惯用选项”中,选择了“保存发送的邮件” 中的哪个选项 @MailSend 将当前的文档邮寄给指定的收件人 @MailSignPreference 判断用户是否选择了“用户惯用选项”对话框的“签发邮件” @Matches 用一个样本字符串去匹配一个字符串 @Max 给出两个数字,返回较大的那个数字 @Member 给定一个值,在文本列表中找到该值的位置 @Middle 从一个字符串的中间部分返回一个子串 @MiddleBack 从一个字符串中间部分返回一个子串 @Min 给定两个数字,返回较小的那一个 @Minute 从时间-日期中提取分钟数值 @Modified 返回一个时间-日期值,表示文档最近和次编辑和保存的时间 @Modulo 返回除法操作的余数 @Month 从指定的时间-日期中提取月份值 @Name 用来裁剪层次结构名 @NerLine 在文本字符串中插入一个新行(回车) @No 返回数字 0 @NoteID 当前文档的标识符号 @Now 返回当前的日期和时间 @OptimizeMailAddress 给定一个邮件地址,删除其中不必要的网络域 @Password 密码字符串 @Pi 返回常量 p,精确到 15 个小数位 @PickList 显示一个模态窗口, 某个视图或地址对话框 @Platform 返回当前 Notes 运行的平台版本 @PostedCommand 执行一条 Notes 命令 @Power 求一个数的幂值 @Prompt 显示一个对话框,并根据用户的操作返回一个文本值。@Prompt 用来给用户提示信息,并根据用户的输入确定以后的操作过程 @ProperCase 将字符串中的单词转换成字首大写的形式 @Random 产生一个 0 和 1 之间的随机数,包含 0 和 1 @RefreshECL 从指定的通讯录和名称中,将管理执行控制列表拷贝到用户的个人工作站ECL中 @REM REM 关键字允许您给公式增加解释性的注释 @Repeat 以指定的次数重复某字符串 @Replace 在文本列表中执行查找/替换操作 @ReplaceSubstring 用指定的新单词或新短语代替字符串中的某个单词或短语 @Responses 返回文档的答复文档的(在当前视图中)个数 @Return 立即停止公式的执行并返回指定的值 @Right 返回字符串最右边的字符 @GightBack 返回字符串中最右边的字符 @Round 将指定的数字归整,结果为最接近它的一个数 @Second 从指定的时间-日期中,提取并返回秒值 @SELECT 定义文档的选择条件 @Select 返回列表中某个位置编号上的值 @Set 为临时变量赋值 @SetDocField 给定一个文档的唯一标识符,设置此文档中的某个域的值 @SetEnvironment 在NOTES.INI或Notes Preferences中设置并保存一个环境变量 @SetField 为文档中的某个域赋值(使用 @Set 可以为临时变量赋值)。 这与关键字 FIELD 相似,只是 @SetField 还可以用在另一个函数中 @SetProfileField 在简要表文件中设置域值 @Sign 判定一个数是正数、负数还是零 @Sin 给定一个用弧度表示的角度,返回该角度的正弦值 @Soundex 返回某指定字符串的 Soundex 码 @Sqrt 返回一个数字的正平方根 @Subset 从左到右搜索一个列,并返回您所指定数量的值 @Success 在输入检查公式中将该函数与 @If 一起使用可以判断输入的值是否满足检查条件 @Sum 在一组数字或数字列表中进行加法运算 @Tan 给定某个角度的弧度值,返回该角度的正切值 @Text 将任意值转换成文本字符串 @TextToNumber 在可能的情况下,将文本字符串转换成数字 @TextToTime 将文本字符串转换为时间-日期值 @Time 将时间和日期的组成部分转换成数字;然后返回时间-日期值 @Today 返回当天的日期 @Tomorrow 返回明天日期的时间-日期值 @Trim 从文本字符串中删除位于开头和结尾的空格,同时还删除多余的空格 @True 返回数字 1。该函数等效于 @Yes @Unavailable 使用本函数删除某个域 @Unique 带有参数时,通过仅返回列表里第一次出现的每个成员来从文本列表里删除重复值 @UpperCase 将指定字符串里的小写字母转换为大写 @URLGetHeader 从 URL 中返回指定的超文本传输协议 (HTTP) 的标题信息 @URLHistory 用于查找、保存和重新加载一个 URL 历史记录 @URLOpen 提取一个由 URL 指定的 W.W.W 页面 @UserAccess 给定一个服务器和文件名,指出当前用户对这个数据库的存取级别 @UserName 返回当前的用户名或服务器名 @UserPrivileges 返回代表当前用户权限的文本列表 @UserRoles 对于选择了“强行统一此数据库的所有复本的存取控制列表”选项的服务器上的数据库或本地数据库,返回当前用户具有的角色的列表。角色是在数据库的存取控制列表中定义的 @V2If 这个函数执行一个 @If 操作;其语法和 @If 的语法一样 @V3UserName 返回当前用户名或服务器名 @Version 返回您正在运行的 Notes 软件的版本号 @ViewTitle 返回当前视图的名称 @Weekday 算出一周中的某一天,返回一个表示这一天的数字 @Word 从一个文本字符串里返回指定的单词 @Year 从指定的时间-日期值中提取年份 @Yes 返回值 1 @Yesterday 返回与昨天日期相对应的时间-日期值 @Zone 返回当前计算机或时间-日期值的时区设置,并指出它是否遵循夏时制

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧