- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 腹透腹膜炎的护理.pptx VIP
- 肌电图设备可行性报告.docx
- 网络短剧推广方案策划.pptx VIP
- 2020年中央空调市场报告-艾肯网.pdf VIP
- 人工智能赋能中学化学教学的探索.pptx VIP
- 高中化学新人教版必修一离子方程式正误判断及离子共存课件.ppt VIP
- 解放上海红色戏剧小品《我记得你,你就活着》台词剧本手稿.doc VIP
- 生成式人工智能应用实战课件 第7章 AIGC信息获取与数据分析.pptx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 2025下半年全国房地产经纪人考试(房地产交易制度政策)综合试题及答案.docx VIP
文档评论(0)