网站大量收购独家精品文档,联系QQ:2885784924

Oracle实验5(PLSQL2).pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle实验5(PLSQL2).pdf

《Oracle 数据库》 实验教学指导书 实验五 PL/SQL 程序设计(2) 撰写人:郭云飞 湘潭大学 信息工程学院 二○一五年四月十五日 实验五 PL/SQL 程序设计(2) 一.上机目的 1. 掌握存储过程、存储函数编程。 2 . 掌握程序包编程。 二.上机内容 1. (1)编写一个存储过程total_income ,如下: (2)调用该过程三次,观察结果,并思考为什么可以这样调用? EXECUTE total_income( 10); EXECUTE total_income(0); EXECUTE total_income; (3)将该过程的执行权授予某个同学,如tom : GRANT execute ON total_incomeTO tom; (4)请tom 调用该过程(假如你的用户名为smith ): EXECUTE smith.total_income( 10); 得到结果: 总收入:17750 因为你的模式与tom 的模式中都有emp 表,这个结果是从谁的模式中统计出来的呢? (5)请tom 将他的emp 表改名为emp1 : alter table emp rename to emp 1; (6)请tom 调用你的过程: EXECUTE smith.total_income( 10); 结果如下: 错误报告: ORA-00942: 表或视图不存在 ORA-06512: 在SMITH.TOTAL_INCOME, line 9 ORA-06512: 在line 1 00942. 00000 - table or view does not exist *Cause: *Action: (7)将对emp 表select 权授予tom : GRANT select ON emp TO tom; (8)请tom 再次调用你的过程: EXECUTE smith.total_income( 10); 结果还是一样: 错误报告: ORA-00942: 表或视图不存在 ORA-06512: 在SMITH.TOTAL_INCOME, line 9 ORA-06512: 在line 1 00942. 00000 - table or view does not exist *Cause: *Action: (9)修改过程,在from 子句的emp 前加上模式名,改为smith.emp 。请tom 再次调用该过程: EXECUTE smith.total_income( 10); 得到正确结果: 总收入:17750 (10)从tom 手里收回授权: REVOKE select ON total_income FROM tom; REVOKE select ON emp FROM tom; (11) 请tom 将他的emp1 表的名称改回emp : alter table emp1 rename to emp; (12)修改过程,①将“AUTHID CURRENT_USER ”改为“AUTHID DEFINER ”,或者干脆删除,②将 from 子句中emp 前的模式名去掉。再一次请tom 合作。 2 . 题目:1+2+…+n 请编写一个名为F24 的存储函数,计算1+2+…+n 的和并返回。 说明:n 的值存放在A_DB 模式中的“输入参数表”中。 代码如下: 调用存储函数F24 : SQL select f24( ) result from dual; 结果如下: RESULT 500500 查看自己有哪些存储过程与函数: select lpad(object_name,12), object_type, procedure_name from user_procedures; 3 . 题目:水仙花数 在A_DB 模式中有一个名为tanbn1(a,b) 的表,表中有若干个整数(不要管是否有重复)。 请编写一个名为F25 的存储函数,统计该表中有多少个数是水仙花数,并作为函数返回值返回。 说明:如果一个三位数等于其各位数字的立方之和,则该数称为水仙花数。如 153=1*1*1+5*5*5+3*3*3。 代码如下: 调用存储函数F25: SQL select f25( ) result from dual; 结果如下:

文档评论(0)

牛X文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档