文档详情

大型数据库技术实验.doc

发布:2017-03-25约5.28千字共14页下载文档
文本预览下载声明
实验7(2) 过程、函数和和程序包 姓名: 林丹萍 学号: 0910012115 专业: 信息与计算科学 班级: 09信计1班 同组人: 无 实验日期: 2012-5-2 【实验目的与要求】 掌握过程的创建与调用 掌握PL/SQL函数的编写与调用 熟悉程序包的使用 【实验内容与步骤】 7.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 建立一个表在scott用户下 Create table errors (error_text varchar2(20)) 2)建立一个aa.sql将其保存在oracle目录bin下面 declare person_no emp.empno%type; person_name emp.ename%type; begin select empno,ename into person_no,person_name from emp where empno7788; exception when no_data_found then insert into errors values(no data found); when too_many_rows then insert into errors values (too many rows); end; 3)select * from errors; 2.以scott身份登录,在SQL Plus中执行@aa命令运行程序: 给出运行结果: 7.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line(数据插入成功); end; / (3) 执行(调用)存储过程 exec insert_salary(6,g,2000); (4)查询执行结果 select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: --创建存储过程mp create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||你好; end; ---调用存储过程mp set serveroutput on declare v_name varchar2(10); begin mp(scott,v_name); dbms_output.put_line(v_name); end;--输出:scott你好 --另一种方式调用存储过程 或者: 在sqlplus中 使用 execute命令调用过程 Variable g_name varchar2(10); --用variable命令绑定参数值,定义一个接受返回值的变量 Execute mp(‘hello’,:g_name); 给出运行结果: (2)-- in out类型参数 create or replace procedure mp(name_in in varchar2, name_out out varchar2, name_in_out in out varchar2) is begin dbms_output.put_line(name_in); name_out := 返回的参数name_out是 || name_in; name_in_out := name_in_out是 || name_in || name_in_out; end; --调用存储过程 variable g_name_out var
显示全部
相似文档