(一)PL/SQL块
PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分,其中执行部分是必须的。
PL/SQL块的结构如下:
PL/SQL块可以分成三类:
1、无名快:动态构造,只能执行一次。
2、子程序:存储在数据库中的存储过程、函数及包等。当在数据库建立好后可以在其他程序中调用它们。
3、触发器:当数据库发生操作时,会触发一些时间按,从而自动执行相应的程序。
(二)PL/SQL结构
-
PL/SQL块中可以包含子块
-
子块可以位于PL/SQL中的任何部分
-
子块也即PL/SQL中的一条命令
(三)标识符
PL/SQL程序设计中的标识符定义与SQL的标识符定义要求相同,要求和限制如下:
-
标识符名不能超过30字符
-
第一个字符必须为字母
-
不分大小写
-
不能用‘-’(减号)
-
不能是SQL保留字
提示:一般不要把变量名声明与字段名完全一样,如果这样可能得到不正确的结果
变量命名在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
(四)PL/SQL变量类型
1、变量类型
2、复合类型
ORACLE在PL/SQL中除了提供像前面介绍的各种类型外,还提供了一种成为复合类型 —— 记录和表
(1)记录类型
记录类型是把逻辑相关的数据作为一个单元存储起来,称作PL/SQL RECORD的域,其作用是存放互不相同但逻辑相关的信息
语法:
DBMS_OUTPUT.PUT_LINE过程的功能类似与JAVA中的System.out.println();直接将结果输出到标准输出中
在使用上述过程之前必须将SQL*PLUS的环境参数SERVEROUTPUT设置为ON,否则将看不到输出结果:set serveroutput on
(2)使用%TYPE
定义一个变量,其数据类型与意境定义的某个数据变量的数据类型相同,或者与数据库表的某个列的数据类型相同,这是就可以使用%TYPE。
优点:
-
所使用的数据库列的数据类型可以不必知道
-
所引用的数据库列的数据类型可以实时改变
(3)使用%ROWTYPE
PL/SQL提供的%ROWTYPE操作符,返回一个记录类型,其数据类型和数据库表的数据结构相一致。
优点:
-
所引用的数据库中列的个数和数据类型可以不必知道
-
所引用的数据库中列的个数和数据类型可以实时改变
(4)PL/SQL表(嵌套表)
PL/SQL程序可使用嵌套表类型创建具有一个或多个列和无限行的变量,这很像数据库中的表,声明嵌套表类型的一般语法如下:
在使用嵌套表之前必须先使用该集合的构造器初始化它,PL/SQL自动提供一个带有相同名字的构造器作为集合类型
嵌套表可以有任意数量的行,表的大小在必要时课动态地增加或减少:extend(x)方法添加x个空元素到集合末尾;trim(x)方法去掉集合末尾的x个元素
(五)运算符和表达式(数据定义)
1、关系运算符
2、一般运算符
3、逻辑运算符
(六)变量赋值
在PL/SQL编程中,变量赋值只一个值得注意的地方,语法如下:
1、字符与数字运算特点
2、BOOLEAN复制
布尔值只有TURE,FALSE及NULL三个值
3、数据库赋值
数据库赋值是通过select语句来完成的,每次执行SELECT语句就赋值一次,一般要求被赋值的变量与SELECT找那个的列名要一一对应