一、随机函数指可以产生随机数的函数,它是可以产生随机的数字或者字符串;1.语法格式:①RAND()可以产生0到1之间的随机数;②dbms_random.value(数1(小),数2(大))生成数1-数2之间的随机数,默认生成小数; ③dbms_random.string(‘格式’,数)u大写字母l小写字母a字母x大写字母和数字p可打印字符生成随机字符串; 注意:Ⅰ、Oracle 11g中没有RAND函数,可以使用DBMS_RANDOM包中的函数来生成随机数。Ⅱ、DBMS_RANDOM包提供了多种随机数生成函数,比如:DBMS_RANDOM.VALUE:返回一个0到1之间的随机数。DBMS_RANDOM.RANDOM:返回一个0到N之间的整数随机数,其中N需要作为参数传递。DBMS_RANDOM.STRING:返回一个由指定字符集中的字符组成的随机字符串,可以指定字符串的长度和字符集。2.使用DBMS_RANDOM包中的函数生成随机数:①生成一个0到1之间的随机数:SELECT DBMS_RANDOM.VALUE AS random_number FROM DUAL;②生成一个0到100之间的整数随机数:SELECT FLOOR(DBMS_RANDOM.VALUE(0, 101)) AS random_number FROM DUAL;③生成一个由10个字符组成的随机字符串,字符集为大写字母和数字:SELECT DBMS_RANDOM.STRING(‘U’, 10) AS random_string FROM DUAL;④随机打印5个(大小写)字母/字符/数字 SELECT dbms_random.value(100,0) a, dbms_random.string(‘u’,5) b, --随机打印5个大写字母 dbms_random.string(‘l’,5) c, --随机打印5个小写字母 dbms_random.string(‘a’,5) d, --随机打印5个字母 dbms_random.string(‘x’,5) e, --随机打印5个大写字母和数字 dbms_random.string(‘p’,5) f --随机打印5个可打印字符FROM dual;⑥生成一个1-100的随机数如果这个数大于95,返回1等奖;如果这个数大于85,返回2等奖;如果这个数大于70,返回3等奖;否则返回谢谢惠顾。declarev1 number:=dbms_random.value(1,100);begin if v1>95 then dbms_output.put_line(‘1等奖’); elsif v1>85 then dbms_output.put_line(‘2等奖’); elsif v1>70 then dbms_output.put_line(‘3等奖’); else dbms_output.put_line(‘谢谢惠顾’);end if;end; ⑦使用RAND函数可以运用在需要产生随机数的场合下,例如在测试、模拟等场合下使用。比如可以使用RAND()函数产生一个0到100之间的随机整数:SELECT FLOOR(RAND() * 100) AS random_number;总结:Ⅰ、DBMS_RANDOM包中的随机数生成函数是基于伪随机数生成算法实现的,因此生成的随机数并不是真正的随机数,而是在一定程度上的伪随机数。Ⅱ、rand函数是MySQL和PHP中的函数,用于生成随机数。在MySQL中,rand函数可以在任何版本中使用。在PHP中,rand函数可以在PHP 4和PHP 5中使用。其他数据库系统(如Oracle、SQL Server等)中没有rand函数,它们使用不同的方式来生成随机数。二、自定义函数指用户自己定义的函数,可以根据自己的需求来编写函数。1.语法格式:CREATE FUNCTION function_name (parameters) --function_name为函数名;parameters为函数参数RETURNS return_type --return_type为返回值类型AS BEGIN function_body; --function_body为函数体END; --详细描述理解:create or replace function --or replace 覆盖函数名(参数 [in]|out|in out 类型…) --不写默认是in,后面加类型不写长度return 返回类型is|as [声明变量;]begin 要执行的语句; return 值|变量;[exception] [要执行的语句;] end;2.自定义函数运用实例自定义函数可以运用在需要根据用户自己的需求编写函数的场合下使用。例如:①制作一个函数mysign输入一个数,如果大于0返回1;如果小于0返回-1;如果等于0返回0;create or replace function mysign(v number) --参数v是要外界输入的,不用赋值 return number isbegin if v>0 then return 1; elsif v<0 then return -1; elsif v=0 then return 0; end if;end;调用函数:和系统函数的调用方法一样;select sign(100),mysign(‘100’),mysign(-10)from dual;②再制作一个函数,输入一个数,要求返回他的相反数:create or replace function xfs(v number) return number isbegin return -v;end;调用函数:select xfs(-0),xfs(0)from dual;③再制作一个函数表示π(没有参数):create or replace function π return number isbegin return acos(-1); --acos(-1) 在数据库里代表πend;调用函数:select π,acos(-1)from dual; --比如求半径是3的圆的周长和面积select 2*π*3 周长,π*power(3,2) 面积from dual;④要求创建一个函数,当输入一个员工编号时能够返回员工工资:create or replace function rs1 (v number) return number isv_sal number; --声明变量begin select sal into v_sal from emp where empno=v; return v_sal;end; --调用函数:select rs1(7788) from dual;3.自定义函数–有out输出情况比如:①要求当输入员工编号时输出员工工资,并返回职位:create or replace function rs2 (v_empno number,v_sal out number)return varchar2 isv_job varchar2(20);begin select sal,job into v_sal,v_job from emp where empno=v_empno;return v_job;end;调用函数:因为函数创建时有out输出,函数调用就不能和系统函数调用方法一样,此时需要采用pl/sql调用;declarev1 number;v2 varchar2(20);begin v2:=rs2(7788,v1); --返回值:=函数名(参数1,参数2) dbms_output.put_line(v1||’ ‘||v2);end;②要求自定义一个函数,输入员工姓名,输出员工工资,最后返回员工的部门编号:create or replace function rs3(v_name varchar2,v_sal out number)return number isv_deptno number;begin select sal,deptno into v_sal,v_deptno from emp where ename=v_name;return v_deptno;end;函数调用:declarev_deptno number;v_sal number;begin v_deptno:=rs3(‘KING’,v_sal); dbms_output.put_line(v_sal||’ '||v_deptno);end;自定义函数总结:·有out一般不用函数·函数一般不包含DML·函数不能包含DDL
Oracle生成随机数
张小明
前端开发工程师
具身智能中的协同机理研究(151):TVA-VLA架构推动具身智能产业化
前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的通用视觉技术体系。它有机融合深度强化学习(DRL)、卷…
倒排索引(Inverted Index)
倒排索引(Inverted Index)倒排索引(Inverted Index)一、先从正排索引说起二、什么是倒排索引三、两者对比四、倒排索引的组成1. 词项字典(Term Dictionary)2. 倒排列表(Posting List)…
深入剖析 MySQL 原理级别的面试题
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
Spring Boot集成Tesseract实现生产级OCR服务
简介:本资源是一份面向Java后端开发者与OCR技术实践者的Spring Boot集成实战指南,聚焦于使用Tesseract OCR引擎实现高精度中文图片文字识别。内容涵盖Tesseract 5.0新版LSTM识别原理、chi_sim简体中文模型配置、tess4j依赖集成、Spring Boot自动装配与服…
Code Puppy MCP服务器管理完全指南:/mcp命令速查与OAuth浏览器授权流程
【免费下载链接】code_puppy Agentic AI for writing code 项目地址: https://gitcode.com/gh_mirrors/co/code_puppy 点击查看 免费下载 Code Puppy 是一个面向 AI 编程的开源工具,内置完整的 MCP(Model Context Protocol)服务器…
内网部署DeepSeek:Ollama服务配置、RAG集成与安全加固实战
简介:本资源是一份面向企业IT人员、AI开发者及安全工程师的DeepSeek大模型内网部署实战指南,聚焦于Ollama平台下的多客户端集成与全链路安全加固。针对金融、医疗等高敏行业对数据不出内网、模型可控可用的核心诉求,系统覆盖硬件选型…