内容发布更新时间 : 2025/4/7 17:19:57星期一 下面是文章的全部内容请认真阅读。
BEGIN ----
value1 := airline.book_ticket(‘10’); 二、填空题
1. 存储过程 是存储在服务器上的一组预编译的Transcat-SQL语句。 2.由于存储过程每次执行时 否 (是,否)都要检查有语法错误
3.程序包包括两个组成部分,即 包头 和 包体 。前者包含了该程序包的信息、过程和函数列表,后者包含实际的代码。
4.如果希望查看过程的有关信息,那么可以使用 USER_SOURCE 数据字典视图。
5.创建和替换存储过程的语句是 CREATE OR REPLACE PROCEDURE ,删除存储过程的语句是 DROP PROCEDURE ,创建和替换函数的语句是 CREATE OR REPLACE FUNCTION ,删除函数的语句是 DROP FUNCTION 。 6.在下面程序的空白处填写一定的代码,使该函数输出0-100的值 clear;
create or replace procedure mydel(in_a in integer) as
a integer; begin a:=0;
while a<100 loop
dbms_output.put_line(a) ; a:=a+1; end loop; end;
7.在下面程序的空白处填写一定的代码,使该函数可以获取指定编号的商品价格。 CREATE O REPLACE FUNCTION get_price (pid varchar2)
RETURN NUMBER IS V_price NUMBER BEGIN
SELECT 单价
INTO V_price
FROM 商品信息 WHERE 商品编号= pid ; RETURN v_price EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(?查找的商品不存在!?); WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE(?程序运行错误!请使用游标?);
45
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(?发生其他错误!?); END get_price; 三、问答题
1.什么是存储过程,为什么要使用存储过程? 解:
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
(1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
(2)当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
(3)存储过程可以重复使用,可减少数据库开发人员的工作量。
(4)安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
2.创建存储过程,要求输入员工号,输出该员工的工资 资料(编号、姓名、工资、工作所在地)。 解:
CREATE OR REPLACE PROCEDURE PRO_NAME( in_id IN VAR