Oracle随机函数之dbms_random使用详解

dbms_randomoracle提供的一个随机函数包,本文将详细介绍函数的使用,需要的朋友可以参考下

dbms_random是oracle提供的一个随机函数包,以下介绍一些dbms_random的常用示例:
dbms_random.value用法:
生成一个大于等于0,小于等于1的38位小数
代码如下:
— FUNCTION value RETURN NUMBER;
select dbms_random.value from dual;
SQL> select dbms_random.value from dual;
VALUE
———-
0.61011338

代码如下:
— FUNCTION value RETURN NUMBER;
select dbms_random.value from dual;
SQL> select dbms_random.value from dual;
VALUE
———-
0.61011338

生成一个指定范围内的数 p>
代码如下:
select dbms_random.value(100,0)
from dual;
SQL> select dbms_random.value(100,0)
2 from dual;
DBMS_RANDOM.VALUE(100,0)
————————
20.7742244285517

代码如下:
— FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
select dbms_random.value(100,0)
from dual;
SQL> select dbms_random.value(100,0)
2 from dual;
DBMS_RANDOM.VALUE(100,0)
————————
20.7742244285517

dbms_random.normal用法
获取正态分布的随机数
代码如下:
select dbms_random.normal from dual;
SQL> select dbms_random.normal from dual;
NORMAL
———-
-1.7330759

代码如下:
select dbms_random.normal from dual;
SQL> select dbms_random.normal from dual;
NORMAL
———-
-1.7330759

dbms_random.string用法
获取指定字符串
代码如下:
/* “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
*/
SQL>
select
dbms_random.string(‘u’,10)
from dual
union all
select
dbms_random.string(‘U’,10)
from dual
union all
select
dbms_random.string(‘l’,10)
from dual
union all
select
dbms_random.string(‘L’,10)
from dual
union all
select
dbms_random.string(‘a’,10)
from dual
union all
select
dbms_random.string(‘A’,10)
from dual
union all
select
dbms_random.string(‘x’,10)
from dual
union all
select
dbms_random.string(‘X’,10)
from dual
union all
select
dbms_random.string(‘P’,10)
from dual
union all
select
dbms_random.string(‘P’,10)
from dual;

代码如下:
–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
*/
SQL>
select
dbms_random.string(‘u’,10)
from dual
union all
select
dbms_random.string(‘U’,10)
from dual
union all
select
dbms_random.string(‘l’,10)
from dual
union all
select
dbms_random.string(‘L’,10)
from dual
union all
select
dbms_random.string(‘a’,10)
from dual
union all
select
dbms_random.string(‘A’,10)
from dual
union all
select
dbms_random.string(‘x’,10)
from dual
union all
select
dbms_random.string(‘X’,10)
from dual
union all
select
dbms_random.string(‘P’,10)
from dual
union all
select
dbms_random.string(‘P’,10)
from dual;

DBMS_RANDOM.STRING(‘U’,10)
—————————-
TXREHAICRI
VDTMXZORVB
udavjpudfb
hvfqhjjdgz
tZoanQzxtX
siATLEZXQa
2LWWZ3H3L5
ZF6MKKG1R7
#\j5IPva(W
sJe/srX:ZB
10 rows selected
dbms_random.seed用法
–可以设置seed来确定随机数的起始点,对于相同的seed而言,随机数的任意一次变化都将是确定的。
– 就是说,如果在某一时刻调用了seed,之后第一次产生的随机数是4,第二次是6,第三次是1,
– 那么当你再次调用相同的seed之后,一次产生的随机数还是4、6、1
– seed有两种,一种是数值型的,一种是字符型(最大长度2000)的
代码如下:
SELECT USERENV(‘SESSIONID’)
FROM DUAL;
BEGIN
dbms_random.seed(6);
END;
/
SELECT DBMS_RANDOM.value
FROM DUAL
CONNECT BY LEVEL
代码如下:
SELECT USERENV(‘SESSIONID’)
FROM DUAL;
BEGIN
dbms_random.seed(6);
END;
/
SELECT DBMS_RANDOM.value
FROM DUAL
CONNECT BY LEVEL
–SESSION 1
代码如下:
SQL> SELECT USERENV(‘SESSIONID’)
2 FROM DUAL;
USERENV(‘SESSIONID’)
——————–
15140521
SQL> BEGIN
2 dbms_random.seed(100);
3 END;
4 /
PL/SQL procedure successfully completed
SQL> SELECT DBMS_RANDOM.value
2 FROM DUAL
3 CONNECT BY LEVEL VALUE
———-
0.53801770
0.67499536
0.65362270
0.76351985
0.29859834
0.40522032
0.99551636
0.39565580
0.18074760
9 rows selected

代码如下:
SQL> SELECT USERENV(‘SESSIONID’)
2 FROM DUAL;
USERENV(‘SESSIONID’)
——————–
15140521
SQL> BEGIN
2 dbms_random.seed(100);
3 END;
4 /
PL/SQL procedure successfully completed
SQL> SELECT DBMS_RANDOM.value
2 FROM DUAL
3 CONNECT BY LEVEL VALUE
———-
0.53801770
0.67499536
0.65362270
0.76351985
0.29859834
0.40522032
0.99551636
0.39565580
0.18074760
9 rows selected

–SESSION 2
代码如下:
SQL> SELECT USERENV(‘SESSIONID’)
2 FROM DUAL;
USERENV(‘SESSIONID’)
——————–
15140517
SQL> BEGIN
2 dbms_random.seed(100);
3 END;
4 /
PL/SQL procedure successfully completed
SQL> SELECT DBMS_RANDOM.value
2 FROM DUAL
3 CONNECT BY LEVEL VALUE
———-
0.53801770
0.67499536
0.65362270
0.76351985
0.29859834
0.40522032
0.99551636
0.39565580
0.18074760
9 rows selected

代码如下:
SQL> SELECT USERENV(‘SESSIONID’)
2 FROM DUAL;
USERENV(‘SESSIONID’)
——————–
15140517
SQL> BEGIN
2 dbms_random.seed(100);
3 END;
4 /
PL/SQL procedure successfully completed
SQL> SELECT DBMS_RANDOM.value
2 FROM DUAL
3 CONNECT BY LEVEL VALUE
———-
0.53801770
0.67499536
0.65362270
0.76351985
0.29859834
0.40522032
0.99551636
0.39565580
0.18074760
9 rows selected

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/475595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 09:16:27
下一篇 2025年11月8日 09:18:16

相关推荐

  • java怎么编译运行.html_java编译运行.html方法【教程】

    Java程序的编译运行与HTML无关,需使用JDK。1. 编写HelloWorld.java文件;2. 命令行执行javac HelloWorld.java生成.class文件;3. 执行java HelloWorld运行程序。注意:HTML是网页标记语言,不能直接运行Java代码,勿将二者混淆。确…

    2025年12月23日
    000
  • html文档中含有java怎么运行_html含java运行方法【教程】

    现代浏览器不支持Java Applet,推荐通过JavaScript调用Java后端服务或使用WebAssembly运行Java代码。 如果您在HTML文档中嵌入了Java代码,但发现无法正常运行,这通常是因为现代浏览器不再支持Java小程序(Applet)或相关插件。以下是几种实现HTML中Jav…

    2025年12月23日
    000
  • 怎么运行html的applet小程序_运行html applet小程序步骤【指南】

    现代浏览器已不再默认支持Java Applet,需通过安装JRE、启用插件、使用支持NPAPI的旧版浏览器(如Firefox 52.9 ESR)、调整Java安全级别至中,并将网站添加到例外站点列表方可运行。 如果您在尝试运行HTML中的Applet小程序时遇到问题,可能是因为现代浏览器已不再默认支…

    2025年12月23日
    000
  • 使用BeautifulSoup和JSON有效抓取动态加载的网页表格数据

    本教程旨在解决使用BeautifulSoup抓取网页表格时,因数据动态加载导致部分内容缺失的问题。通过分析网页背后的API请求,直接获取并解析JSON数据源,再结合BeautifulSoup提取的HTML结构信息,最终实现完整且准确的数据抓取。文章将提供详细的代码示例和实现步骤。 理解网页动态内容与…

    2025年12月23日
    400
  • 解决BeautifulSoup爬取网页表格中动态内容缺失问题

    本文旨在解决使用BeautifulSoup爬取网页表格时,因部分数据通过JavaScript动态加载导致内容缺失的问题。通过详细分析Oracle云定价页面的案例,教程将指导读者如何识别并获取隐藏在JSON API中的动态数据,并将其与BeautifulSoup解析的静态HTML内容有效整合,最终构建…

    2025年12月23日
    000
  • Java GUI在Web部署中的挑战与现代解决方案

    本文旨在澄清Java Web Start(JWS)在Web页面内运行GUI的常见误解,指出JWS用于本地应用启动而非嵌入式Web GUI。文章将探讨JWS的局限性及其被Oracle弃用的原因,介绍OpenWebStart作为其开源替代方案,并重点推荐Vaadin Flow作为使用纯Java构建真正W…

    2025年12月22日
    000
  • Java GUI Web部署策略与现代替代方案

    本文旨在澄清Java GUI应用在Web页面中直接运行的常见误区,特别是关于Java Web Start (JWS) 的作用与局限性。我们将探讨JWS的实际工作机制、其被Oracle废弃的原因,并介绍OpenWebStart作为现有JWS应用的替代方案。此外,文章将重点推荐Vaadin Flow等现…

    2025年12月22日
    300
  • HTML表单如何实现白名单功能?怎样只允许授权用户?

    要实现%ignore_a_1%的白名单功能并确保只有授权用户操作,核心答案是必须依赖后端服务器进行严格的身份认证、会话管理、授权检查和数据验证,前端仅能提供用户体验层面的初步提示而不能保障安全;具体而言,首先通过用户身份认证(如用户名/密码或oauth)确认用户身份,服务器创建会话并返回标识符,后续…

    2025年12月22日
    000
  • 表单中的ERP怎么连接?如何对接企业资源计划系统?

    将表单数据连接到erp系统的核心是打通数据流,确保信息能从前端无缝流入企业核心系统,主要通过api接口集成、中间件/ipaas、文件导入导出和rpa四种方式实现;其中api集成因其实时性高、安全性好、可扩展性强,成为现代系统的首选方案,尤其适用于支持开放api的erp系统;当业务涉及多系统复杂集成时…

    2025年12月22日
    100
  • HTML如何实现文本加密?怎么隐藏敏感内容?

    纯前端技术无法真正加密或安全隐藏敏感内容,因为html、css和javascript均在客户端运行,源代码和数据可被用户通过开发者工具轻易查看;2. 所谓“隐藏”如display: none、hidden属性或javascript移除dom,仅是视觉上的屏蔽,数据仍存在于页面中;3. 真正的安全必须…

    2025年12月22日
    000
  • 表单中的智能合约怎么集成?如何自动执行表单条款?

    要实现表单数据与智能合约的精准匹配及条款的自动执行,核心在于通过后端服务进行数据类型转换、多层校验并严格遵循abi规范调用合约;智能合约通过内置条件逻辑或借助chainlink keepers等自动化服务实现触发执行;需应对gas成本、安全风险、异步体验和预言机依赖等挑战,采用layer 2、元交易…

    2025年12月22日
    000
  • 想提升IT技能?哪些含金量高的认证值得考?

    it职业发展:高含金量认证助您成功 想在IT领域提升竞争力?选择合适的认证至关重要。本文推荐几项国内外认可度高的IT认证,助您在职业道路上更进一步。 热门认证推荐: 1. 高级软件设计师(软考高级): 国内IT领域含金量最高的认证之一。涵盖软件工程、项目管理及计算机基础知识。证明您在软件设计和开发方…

    2025年12月22日
    000
  • 解决node-oracledb Thin模式下不支持0x939密码验证器错误

    本文旨在解决使用node-oracledb在thin模式下连接oracle数据库时遇到的“密码验证器类型0x939不受支持”错误。该问题通常源于数据库使用了较旧的密码哈希算法。教程将详细介绍针对不同oracle数据库版本的解决方案,包括启用thick模式、调整数据库参数以及重置用户密码等,以确保no…

    2025年12月21日
    100
  • 数据持久化方案比较

    文件存储适合轻量级需求,实现简单但并发和查询能力弱;2. 关系型数据库保障一致性与复杂查询,适用于强一致性系统;3. NoSQL 数据库高扩展高性能,适合动态结构与海量数据;4. 对象存储用于海量非结构化文件,具备高持久性但不支持随机更新;5. 方案选择需综合数据类型、访问模式与规模,最合适组合优于…

    2025年12月21日
    000
  • 解决 node-oracledb 6.0 Thin 模式脚本结束延迟问题

    node-oracledb 6.0 Thin 模式下,若不显式关闭数据库连接,Node.js 脚本在执行完毕后会出现数秒的延迟才终止。这是因为 Thin 模式直接管理网络套接字,这些套接字会保持 Node.js 事件循环活跃,直到被垃圾回收器处理。为避免此延迟,务必通过 connection.clo…

    2025年12月20日
    000
  • 深入理解node-oracledb 6 Thin模式下的连接管理与脚本终止行为

    在使用node-oracledb 6的Thin模式时,若不显式关闭数据库连接,Node.js脚本可能出现意外的延迟终止。这是因为Thin模式下的内部套接字会被Node.js事件循环感知,从而阻止进程立即退出,直至连接被垃圾回收或显式关闭。本文将深入探讨这一机制,并强调在Thin模式下显式调用conn…

    2025年12月20日
    000
  • 如何在APEX自动完成文本字段中实现多条件代码触发(选择值或离开字段)

    针对APEX 22.2.4中自动完成文本字段的事件触发限制,本文提供了一种解决方案。通过结合“Change”和“Key Down”两种动态操作,并利用“Debounce”机制优化按键事件,开发者可以实现在用户选择列表值或离开字段时,以及在用户输入过程中按需触发自定义代码,从而提升应用交互的灵活性和用…

    2025年12月20日
    000
  • Oracle APEX:掌握通过JavaScript正确调用应用程序级进程的方法

    本教程详细阐述了在Oracle APEX中通过JavaScript动态调用应用程序级进程的正确方法。它澄清了apex.submit()与apex.server.process()之间的关键区别,指出前者仅用于页面提交,而后者才是执行命名服务器端进程的AJAX首选。文章提供了示例代码和配置指导,帮助开…

    2025年12月20日
    000
  • Oracle APEX中正确调用应用程序级进程:告别apex.submit的误区

    本文探讨Oracle APEX中从页面动态操作调用应用程序级进程的常见误区。明确指出apex.submit仅用于页面提交并设置请求值,而要真正触发应用程序级进程,应使用apex.server.process进行按需AJAX调用。文章将详细介绍apex.server.process的使用方法、参数配置…

    2025年12月20日
    000
  • Node.js中如何加密数据?

    Node.js中加密数据需选用合适算法并安全管理密钥。推荐使用AES-256-GCM进行对称加密,因其提供机密性与完整性;RSA配合OAEP填充用于非对称加密,适合密钥交换;密码存储应采用bcrypt等专用哈希算法,避免MD5、SHA1。密钥绝不可硬编码,应通过环境变量、KMS或HSM安全管理,并定…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信