1、定义:
PL/SQL是Oracle在标准SQL语言上进行过程性扩展后形成的的程序设计语言,是一种Oracle数据库特有的、支持应用开发的语言。
2、基本结构
结构如下
DECLARE声明
BEGIN
EXCEPTION
END
其中,只有执行部分是必须的,其他两个部分(声明和异常处理都是可选的)。
最简单的例子
begin
/*执行部分*/
end;
举例子
declare
v_department CHAR(3); -- 保存三个字符的变量,系代码 --
V_course NUMBER; /*保存课程号变量*/
BEGIN
/*插入一条记录*/
INSERT INTO classes(department,course)
VALUES(v_department ,V_course);
END;
3、数据类型
1. 数字类型
其中包括NUMBER,PLS_INTEGER和BINARY_INTEGER。其中NUMBER类型的变量可以存储整数或浮点数,而PLS_INTEGER和BINARY_INTEGER只能存储整数。
NUMBER(P,S)其中P是精度,S是刻度范围,前者是数值中所有有效数字的个数,刻度范围是小数点右边的数字位的个数。如果刻度是负数则从左边开始计算个数。例如NUMBER(3,1)和NUMBER(3,-1)的区别是前者最大表示99.9(从右边算小数位)而后者表示9.99(从左边算小数位)
2. 字符类型
其中包括VARCHAR2,CHAR,LONG,NCHAR,和NVARCHAR2
VARCHAR2存储可变长字符串,声明语法为VARCHAR2(MaxLength),必须指定最大长度,最大为32767字节
CHAR类型表示定长字符串,声明语法为CHAR(MaxLength),如果不填写,默认为1,最大为34767字节
3、日期类型
DATE,包括世纪、年、月、日、时、分、秒,共7个字节,每个部分占用一个字节;
4、布尔类型
BOOLEAN,主要用于流程控制,一个布尔类型变量的值可以使TRUE,FALSE,或NULL。
5、Type定义的数据类型
格式为Type<数据类型名称>is<数据类型>;在Oracle中允许用户定义两种数据类型,它们是record(记录类型)和Table(表类型)。类似于C语言中的结构体;
例如
type teacher_record is RECORD --定义teacher_record记录变量
(
TID NUMBER(5)NOT NULL:=0, --其中的记录
NAME VARCHAR2(50),
TITLE VARCHAR2(50),
SEX CHAR(2),
);
ateacher teacher_record; --定义一个 teacher_record类型的记录变量ateacher
要使用ateacher的姓名,则表示为ateacher.name