标签:begin end create number 游标 SQL return replace PL
PL/SQL函数和过程示例
函数尽量不用in,out,in out
根据三角形的三边长返回面积
create or replace function calcTriangleArea(a number, b number, c number) return number is p number := (a + b + c) / 2; s number; begin s := round(sqrt(p * (p - a) * (p - b) * (p - c)), 2); return s; end;
根据雇员ID返回其部门名称
create or replace function getDeptName(v_empno emp.empno%type) return varchar2 is v_deptname dept.dname%type; begin select dname into v_deptname from dept d where exists (select 0 from emp e where e.deptno = d.deptno and e.empno = v_empno); return v_deptname; end;
返回一个由大小写字母组成的,长度为6-10位的随机字符串
create or replace function grs return varchar2 is l number := trunc(dbms_random.value(6, 11)); begin return dbms_random.string('A', l); --A表示生成大小写字母,l表示长度 end;
根据指定参数输出斐波那契数列对应项上的数值
create or replace function fibonacii(n pls_integer) return pls_integer is fib_1 pls_integer := 0; fib_2 pls_integer := 1; rlt pls_integer; begin case when n = 1 then rlt := fib_1; when n = 2 then rlt := fib_2; else rlt := fibonacii(n - 2) + fibonacii(n - 1); end case; return rlt; end;
过程
根据三角形的两边及其夹角计算出周长和面积
create or replace procedure calcTriangleAreaGirth(a number, b number, ang number) is rad number; c number; s number; g number; begin rad := ang / 180 * (asin(1) * 2); c := sqrt(a ** 2 + b ** 2 - 2 * a * b * cos(rad)); g := round(a + b + c, 2); s := round(a * b * sin(rad) / 2, 2); dbms_output.put_line('Area:' || to_char(s) || ' Girth:' || to_char(g)); end; begin calcTriangleAreaGirth(3,4,90); end;
为指定dept_no的部门的雇员增加20%薪水
create or replace procedure raiseSal(v_deptno emp.deptno%type) is begin update emp set sal = sal * (1 + 0.2) where emp.deptno = v_deptno; dbms_output.put_line(to_char(SQL%ROWCOUNT) || '名雇员的薪水已上涨20%'); end; begin raiseSal(10); end;
列出指定日期(默认当前日期)所在月份的所有日期
create or replace procedure listDay(d date default sysdate) is v_first_day date := trunc(d, 'mm'); v_last_day date := trunc(last_day(d)); begin for i in 0 .. (v_last_day - v_first_day) loop dbms_output.put_line(v_first_day + i); end loop; end; begin listDay; end; begin listDay(date'2014-02-01'); end;
in 接收,不可改变
out 输出,可改变,不可接受
in out 可接受,可改变,可输出
链接中有in,out,in out的用法说明
版权声明:下面链接为xldmx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
链接:https://blog.csdn.net/xldmx/article/details/102477241
标签:begin,end,create,number,游标,SQL,return,replace,PL 来源: https://www.cnblogs.com/lag1/p/15329526.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。