当前位置:文档之家› 数据库应用3

数据库应用3

数据库应用3
数据库应用3

《数据库应用》上机实验报告3

班级:

学号:

姓名:

实验目的:

通过本次上机,进一步使用oracle的功能做一些实践,学会过程和函数的创建并使用。

实验内容:

实验内容:

在HR用户的例表下,自行设计业务逻辑

分别实现设计过程与函数各一个,要求提交并存储到数据中。

实验结果与分析:

1、设计一个过程,过程的声明语法:

CREATE [OR REPLACE]PROCEDURE 过程名[(参数名参数类型,…)] is

--变量声明部分

[变量名变量类型]

BEGIN

--过程体

[EXCEPTION]

--异常处理

END;

/

注:--后为注释

创建一个过程reg_pro,该过程可以展示出某一id对应的地区名。

过程创建截图如下:

使用reg_pro,展示结果如下:

选择出region_id为2的那个地区名给reg_id。

REGIONS表的数据信息:

2、创建一个函数,函数声明语法:

CREATE [OR REPLACE]FUNCTION 函数名[(参数名参数类型,…)]

RETURN 数据类型 is

--变量声明部分

[变量名变量类型]

BEGIN

--函数体

[EXCEPTION]

--异常处理

END;

/

创建函数j_fun的截图展示如下:

使用该函数。并展示结果:

J_fun将某一个JOB的max_salary+1000,选择出job_id为AD_VP的JOB,并将max_salary的值加上1000后给j_max_salary。

JOBS表的部分数据:

3、异常节:

EXCEPTION

WHEN exception_name

THEN

error handling statements; ……

[WHEN OTHERS

default exception handling;]

异常节是最后一节,是可选的。

异常节用于处理在执行该块的逻辑期间所发生的任何错误。

异常的名称:

PL/SQL中已经定义了许多异常,例如no_data_found。参考《Oracle PL/SQL User’s Guide》

自己定义并启动异常:定义异常时和普通的变量声明是一样的。

execption_name EXCEPTIONS;

RAISE exception_name;

异常相关函数:

异常处理过程中,需要明确知道发生异常的原因。

在WHEN OTHERS语句中,将众多的错误原因放在一起进行处理,需要明确知道错误的类型和原因。

Oracle提供了两个系统变量用以处理此问题:

SQLCODE,返回错误的错误代码;

SQLERRM,返回错误的出错信息;

exception

when others

then

dbms_output.put_line (‘Error’ || SQLERRM || ‘occurred.’);

实验小结:

通过本次上机,对过程和函数的实现有了一定的了解,在解决创建过程和函数的过程中出现的问题时发现了自己的不足。

代码:

SQL> create or replace procedure reg_pro(reg_id number) is

2 reg_name varchar2(25);

3 begin

4 select region_name into reg_name from regions where region_id=reg_id;

5 dbms_output.put_line('地区:'||reg_name);

6 end;

7 /

过程已创建。

SQL> set serveroutput on

SQL> exec reg_pro(2)

地区:Americas

PL/SQL 过程已成功完成。

SQL> create or replace function j_fun(j_id varchar)

2 return number is

3 j_max_salary number(6,0);

4 begin

5 select (max_salary+1000) into j_max_salary from jobs where job_id=j_id;

6 return j_max_salary;

7 end;

8 /

函数已创建。

SQL> select j_fun('AD_VP') fr

J_FUN('AD_VP')

--------------

31000

31000

31000

31000

31000

31000

31000

31000

31000

31000

31000

J_FUN('AD_VP')

--------------

31000

31000

31000

31000

31000

31000

31000

31000

已选择19行。

SQL>

相关主题
文本预览
相关文档 最新文档