ORACLE复习(二)

三、     PL/SQL程序单元

1、无论是单独的过程/函数,还是包中的过程/函数,都统称为子程序。

2、过程

 

1)       异常处理部分是可选的。

2)       过程名应该用动词,因为过程通常是执行某种动作。过程并不一定具有参数。当创建的过程没有参数,就不需要使用圆括号。当调用过程时,空括号是可选的。如:PROCEDURE insert_temp IS

BEGIN

INSERT INTO temp(n) VALUES(0);

END insert_temp;

           则调用时,可以采用insert_temp;或者insert_temp();

3)       尽管将过程名追加到END子句后是可选的,但强烈推荐这么做;常见的过程样式是ISBEGINEXCEPTIONEND对齐。这些关键字作用域内的全部代码都要进行缩进。这样有助于程序的可读性。

 

3、函数

 

1)       函数不是动作者,而是状态的计算值,所以该用名词对函数进行命名

2)       参数是可选的,但是RETURN语句是必须的。如果函数返回值类型与某变量类型相同,则该变量与函数调用之间是可以互换的。

4、

1)       最基本的包规范语法是:

CREATE PACKAGE package_name IS

Type definition for records, index_by tables,varrys, nested tables

Constants

Exceptions

Global variable declarations

PROCEDURE procedure_name_1(parameters & types);

PROCEDURE procedure_name_2(parameters & types);

FUNCTION function_name_1(parameters &types) RETURN type;

           END package_name;

2)       包规范中可以声明数据类型(如,记录类型)、数据声明(如,记录)和异常。在包规范中声明的所有数据对象都是全局的。所以在包规范中声明的变量应当只是那些作用域是全局的变量。包体中的PROCEDURE语句必须与相应包规范中的PROCEDURE语句相匹配,包括子程序名称、参数名称、参数模式和参数类型等。同样适用于FUNCTION子程序。

5、参数与模式

IN(默认), IN OUT, OUT

IN表明子程序只能将该参数作为一个变量来使用,它是只读

IN OUT参数只能是变量类型,不允许为文字或常量

OUT参数只能是变量类型,不允许为文字或常量。在子程序中,一个OUT模式参数的初始值为NULL

默认参数语法:

PROCEDURE name

      (argument mode datatype :=a_default_value);

PROCEDURE name

      (argument mode datatype default a_default_values);

6、%TYPE

该语法用于声明一个变量,该变量的类型是从数据库表中某列的类型派生而来的

Variable_name table_name.column.name%TYPE;

7、重载

可以重载包中的过程或函数。在同一包中,只有当参数描述不同时才会对子程序进行重载。Oracle必须能够确定调用的是哪个过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值