Oracle数据库验-PLSQL游标、过程、函数、包的使用.docVIP

Oracle数据库验-PLSQL游标、过程、函数、包的使用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle数据库验-PLSQL游标、过程、函数、包的使用

Oracle数据库基础 实验5 PL/SQL游标、过程、函数、包的使用 【实验学时】 2学时 【】 【】 1 declare 2 cursor c_dept is select * from dept order by deptno; 3 cursor c_emp(p_dept emp.deptno%type)is select ename,sal from emp where deptno=p_dept 4 order by ename; 5 r_dept dept%rowtype; 6 v_ename emp.ename%type; 7 v_salary emp.sal%type; 8 v_tot_salary emp.sal%type; 9 begin 10 open c_dept; 11 loop 12 fetch c_dept into r_dept; 13 exit when c_dept%notfound; 14 dbms_output.put_line(department:||r_dept.deptno||-||r_dept.dname); 15 v_tot_salary:=0; 16 open c_emp(r_dept.deptno); 17 loop 18 fetch c_emp into v_ename,v_salary; 19 exit when c_emp%notfound; 20 dbms_output.put_line(name:||v_ename||salary:||v_salary); 21 v_tot_salary:=v_tot_salary+v_salary; 22 end loop; 23 close c_emp; 24 dbms_output.put_line(total salary for dept:||v_tot_salary); 25 end loop; 26 close c_dept; 27* end; SQL / PL/SQL 过程已成功完成。 用cursor for编写上题的程序。 1 declare 2 cursor c_dept is select deptno,dname from dept order by deptno; 3 cursor c_emp(p_dept emp.deptno%type)is 4 select ename,sal 5 from emp 6 where deptno=p_dept 7 order by ename; 8 v_tot_salary emp.sal%type; 9 begin 10 for r_dept in c_dept loop 11 dbms_output.putline(department:||r_dept.deptno||-||r_dept.ename); 12 v_tot_salary:=0; 13 for r_emp in c_emp(r_dept.deptno)loop 14 dbms_output.put_line(name:||r_emp.ename||salary:||r_emp.sal); 15 v_tot_salary:=v_tot_salary+r_emp.sal; 16 end loop; 17 dbms_output.put_line(total salary for dept:||v_tot_salary); 18 end loop; 19* end; QL / dbms_output.putline(department:||r_dept.deptno||-||r_dept.ename); 创建两个表格,myemp和mybonus表,分别与员工emp表和津贴bonus表的结构及数据相同。要求用游标完成操作:取出myemp表中工资大于1000元的记录,将其工资的30%作为奖金插入到mybonus表中。 create or replace procedure insertjintie() is CURSOR emp IS SELECT 工号,姓名,工资 FROM 职工表 where 工资1000; begin for v_emp in emp loop insert into 津贴表(工号,工资) values(v_emp.工号,v_emp.工资*0.3); end loop;

文档评论(0)

zhanci3731 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档