orical10g实验五.docVIP

  • 44
  • 0
  • 约1.11万字
  • 约 29页
  • 2019-02-19 发布于浙江
  • 举报
成绩大型数据库技术实验报告 成绩 实验课程: 大型数据库技术(Oracle) 专业: 计算机与信息工程学院 班级: 姓名: 学号: 同组人: 无 实验日期: 2014\5\24 实验 项目 实验八  过程、函数和和序包 实验 类型 设计性实验 目的 要求 掌握过程的创建与调用 掌握PL/SQL函数的编写与调用 熟悉程序包的使用 (实验内容及步骤) 【实验步骤】 8.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQL Plus中执行@aa命令运行程序: 给出运行结果: 8.1.存储过程 1.最简单的存储过程 (1)创建测试表 drop table empl; create table empl( 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 empl values (v_id,v_name,v_salary); commit; dbms_output.put_line(数据插入成功); end; / (3) 执行(调用)存储过程 exec insert_salary(6,g,2000); (4)查询执行结果 select * from empl; 2.存储过程应用实例:列车购票与退票过程简单模拟 drop table ticket; create table ticket ( trainno varchar2(10), ticketnum varchar2(10), primary key (trainno,ticketnum) ); -- 存储过程声明 create or replace procedure init is begin for i in 1..100 loop insert into ticket values (1111, to_char(i, 0000)); end loop; for i in 1..100 loop insert into ticket values (2222, to_char(i, 0000)); end loop; for i in 1..100 loop insert into ticket values (3333, to_char(i, 0000)); end loop; commit; end; -- 调用火车的存储过程 begin init(); end; -- 买票的存储过程声明 create or replace procedure sell(trainno varchar2) is t ticket%rowtype; cursor c1(tno varchar2) is select * from ticket where trainno=tno for update; begin if not(trainno = 1111 or trainno = 2222 or trainno = 3333) then DBMS_OUTPUT.PUT_LINE(车次不正确); return; end if; open c1(trainno); fetch c1 into t; if c1%found then DBMS_OUTPUT.PUT_LINE(您买的是: || trainno || 票的 || t.ticketnum || 号票); delete from ticket where current of c1; commit; else DBMS_OUTPUT.PUT_LINE(没票); end if; close c1; end; -- 调用买票的存储过程 begin exec sell(1111); --有误,去掉exec end; -- 创建退票的存储过程 create or replace procedure returnTicket(trainno in varchar2,ticketno in varchar2) is v_error_code NUMBER; v_error_message VAR

文档评论(0)

1亿VIP精品文档

相关文档