大型数据库考试题型与练习题答案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习题 1、创建一个过程,根据用户输入的编号,在emp表中查询出该编号的员工姓名、部门号及其主管编号,要有异常处理。 CREATE OR REPLACE PROCEDURE test(aaa emp.empno%type) is v_emp emp%rowtype; begin select ename, deptno,mgr into v_emp.ename, v_emp.deptno,v_emp.mgr from emp where empno = aaa; dbms_output.put_line(v_emp.ename ||,|| v_emp.deptno); exception when no_data_found then dbms_output.put_line(没有该编号人员); when others the dbms_output.put_line(执行失败); end; / 2、创建一个函数get_sal,查询出emp中给定员工号的工资,该函数需要一个输入参数为员工号,返回值为员工的工资。 create or replace function get_sal(id in number) return number as emp_sal number(5); begin select sal into emp_sal from emp where empno=id; return emp_sal; end get_sal; / 3、创建一个触发器total_merch_tri,当商品信息表中发生了任何变化,立即触发,然后对商品信息表的数据进行统计,统计出供应商品的供应商总数和商品的平均单价,统计结果存储在merch_status表中。 其中,merch_status表包含两个字段:total_provider和avg_price。total_provider和avg_price的数据类型为number。 create table merch_status (total_provider number(4), avg_price number(7,2) ); CREATE OR REPLACE TRIGGER total_merch_tri AFTER INSERT OR DELETE OR UPDATE ON 商品信息 DECLARE CURSOR c_Statistics1 IS SELECT COUNT(distinct 供应商编号) total_provider FROM 商品信息; CURSOR c_Statistics2 IS SELECT avg(单价) avg_price FROM 商品信息; BEGIN DELETE FROM merch_status; FOR v_StatsRecord in c_Statistics1 LOOP INSERT INTO merch_status(total_provider) VALUES(v_StatsRecord.total_provider); END LOOP; FOR v_StatsRecord in c_Statistics2 LOOP UPDATE merch_status SET avg_price=v_StatsRecord.avg_price; END LOOP; END total_merch_tri; / select * from merch_status; insert into 商品信息(商品编号,商品名称,供应商编号,单价) values(1030,dddd,1002,200); delete 商品信息 where 商品编号=1030; 4、编写一个存储过程comSalary,分别统计出emp表中所有部门的平均工资,并且只显示出工资超过3500的部门。并编写PL块调用此存储过程。 CREATE OR REPLACE PROCEDURE comSalary AS CURSOR cur IS SELECT deptno,AVG(sal) FROM emp GROUP BY deptno; line cur%ROWTYPE; avg_sal emp.sal%TYPE; BEGIN OPEN cur; --打开游标 LOOP --开始遍历游标 FETCH cur INTO line; EXIT WHEN cur

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档