- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验9 过程-函数-程序包
实验九 存储过程-函数和程序包 实验目的:通过本次实验了解oracle中内置函数、内置包的使用方法,了解oracle中存储过程、存储函数及包的创建及其使用方法。 实验要求: 创建存储过程并能在SQL PLUS中调用 创建存储函数并能在SQL PLUS中调用 创建程序包并能在SQL PLUS中使用程序包 了解并使用内置函数和内置程序包。 获取存储过程、函数、包的信息 user_source.text 实验环境:Oralce 10g 实验步骤: 使用用户名scott登录数据库。 创建一个表: Create table temp(deptno number(2),count number(2), total_sal number(7,2)); 创建一个没有参数的存储过程:从emp表中找出30号部门人数之和与工资总和,并存入temp表中。 分别使用下列三种方法调用存储过程,前面2种方法是一样的: exec 存储过程名 execute 存储过程名 Begin存储过程名;end; 创建一个带参数的存储过程,作用与上面的存储过程一致。然后调用它。 创建一个带有输入和输出模式参数的存储过程,并在执行存储过程后获取输出模式参数值。 创建一个函数:把调用者提供的一个7位数字的电话号码的前三位数字和后四位数字之间加一“-”,并通过返回值返回给调用者。并执行调用这个函数。 创建一个程序包:存储过程一:提供员工编号,显示员工姓名;存储过程二:提供员工编号与新的工资,修改员工工资。并调用它们。 创建一个没有参数的存储过程:Create or replace procedure proc1 is -- 没有参数 Vcount number(2); -- 声明本地变量 Vsal number(10,2); Begin select count(*),sum(sal) into vcount,vsal from emp where deptno=30; delete from temp; insert into temp values(30,vcount,vsal); End proc1; 创建一个带有参数的存储过程:Create or replace procedure proc2(vdeptno in number default 10) is Vcount number(2); Vsal number(10,2); Begin select count(*),sum(sal) into vcount,vsal from emp where deptno=vdeptno; delete from temp; Insert into temp values(vdeptno,vcount,vsal); End proc2; 创建一个带有输入和输出模式参数的存储过程Create or replace procedure proc3(vdeptno in number default 10, vout out number) is Vcount number(2); Vsal number(10,2); Begin select count(*),sum(sal) into vcount,vsal from emp where deptno=vdeptno; delete from temp; Insert into temp values(vdeptno,vcount,vsal); vout := vsal; End proc3; 创建一个函数Create or replace function add_dash_fun(v_phone_no varchar2) Return varchar2 Is V_8 varchar2(8); Begin V_8:=substr(v_phone_no,1,3)||’-’||substr(v_phone_no,4,4); Return v_8; End add_dash_fun; 调用函数:declare v_7 varchar2(7):=‘1234567’; begin dbms_output.put_line(‘调用函数前电话号码:’||v_7); dbms_output.put_line(‘调用后的电话号码:’||add_dash_fun(v_7)); End; 创建一个程序包:CREATE OR REPLACE PACKAGE EMPLOYE --包头部分 IS PROCEDURE GET
文档评论(0)