PL/SQL精简速查手册-声明部分

PL/SQL结构

     块头         [可省略]

IS

     声明部分         [可省略]

BEGIN

     执行部分

EXCEPTION

     异常部分 [可省略]

END;

 

块头

{ {PROCEDURE|FUNCTION}  name  IS| <<name>> }

声明部分

在此处声明块中使用的变量、游标、类型、本地过程和函数。

声明变量

变量:

variable_name type [NOT NULL] [:=initial_value]

常量:

constant_name CONSTANT type :=initial_value

数据库列类型变量:

variable_name [schema.] table_name.column_name%TYPE

已有变量类型变量:

variable_name variable1%TYPE

 

常用数据类型

String/Varchar2,Number,Boolean,Date

 

声明记录类型

TYPE type_name IS RECORD(

variable_name type [NOT NULL] [:=initial_value]

[,variable_name type [NOT NULL] [:=initial_value]...]

)

 

声明记录类型变量:

record_name type_name;

 

通过使用INTO语句,可是使记录类型的变量成为SELECT语句的目标。

 

记录类型变量引用字段:

record_name.variable_name

 

%ROWTYPE

record_name [schema.]table_name%ROWTYPE

通过%ROWTYPE可取代类型声明,直接将变量声明为记录类型变量。

 

索引表

类似于JavaScript 中的数组Array

TYPE table_name IS TABLE OF

{type | variable%TYPE | [schema.]table_name%ROWTYPE}

INDEX BY BINARY_INTEGER

 

表类型声明的结果是具有两列的内存表:

KEY (总是 BINARY_INTEGER)

VALUE(在表声明中定义的类型)

 

声明索引表类型变量

variable_name table_name;

使用索引表类型变量

variable_name(key);

索引表方法

 

方法

返回值

描述

COUNT

NUMBER

返回表中的行数

DELETE

 

从表中删除所有行

DELETE(x)

 

从表中删除具有键x的行

DELETE(x,y)

 

删除表中有x~y之间的键的所有行

EXISTS(x)

BOOLEAN

返回表中是否具有键为x的行。

FIRST

BINARY_INTEGER

返回表中的最小的键值

LAST

BINARY_INTEGER

返回表中的最大的键值

NEXT(x)

BINARY_INTEGER

返回表中比提供的键要大的最小的行键

PRIOR(x)

BINARY_INTEGER

返回表中比提供的键要小的最小的行键

注:DELETE方法只可用于Oracle8或更高版本中,以前版本中没有可以删除行的方法。

可变数组

企业版独有

TYPE vartype_name IS {VARRAY | VARYING} (maxsize) OF data_type [NOT NULL]

 

 

示例:

DECLARE

--声明可变数组类型

TYPE num_array IS VARRAY (100) OF NUMBER ;

--声明数组变量

num1 num_array;

num2 num_array;

BEGIN

--调用构造方法

num1 := num_array();

num2 := num_array(1,2,3);

 

--每增加一个值都需先扩展数组

num1.extend;

num1(1) :=1; --与很多高级语言不同,其索引从1开始

 

num2.extend ;--扩展不可超出最大声明大小

num2(4):=4;

END;

 

可变数组方法

 

方法

返回值

描述

COUNT

INTEGER

返回数组中的条目数

DELETE

 

从数组删除所有条目

DELETE(x)

 

从数组删除索引为x的条目

DELETE(x,y)

 

删除数组索引在x~y之间的所有条目

EXISTS(x)

BOOLEAN

返回数组是否具有索引为x的条目

FIRST

INTEGER

返回数组的最小的索引值

LAST

INTEGER

返回数组的最大的索引值

NEXT(x)

INTEGER

返回数组比提供的索引要大的最小的索引

PRIOR(x)

INTEGER

返回数组比提供的索引要小的最小的索引

TRIM

 

删除具有最大索引值的条目

TRIM(x)

 

从数组尾部删除x(可为0)个条目

EXTEND

 

在数组中增加一个条目

EXTEND(x)

 

在数组中增加x个条目

EXTEND(x,y)

 

在数组中增加x个条目,值为索引y对应的条目值

LIMIT

INTEGER

返回数组最大声明大小

 

声明游标

CURSOR cursor_name IS

select_statement

[FOR UPDATE [OF column[,... ]] [NOWAIT]

 

使用请参见执行部分介绍。

声明异常

EXCEPTION

Exception_name EXCEPTION

PRAGMA EXCEPTION_INIT

PRAGMA EXCEPTION_INIT (exception_name,ora_number)

将异常处理与指定的Oracle错误号关联。

Oracle错误号通常是负数。如果想跟踪错误号ORA-02292,可使用-2292作为ora_number

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值