PL/SQL简介
PL/SQL L/SQL 是一种程序化语言,叫过程化SQL语言(Procedural Language/SQL)。PL/SQL是oracle对标准数据库SQL的过程化扩充,他将数据库技术和过程化语言联系起来,是一种开发语言,可以循环、分支处理数据,将SQL的数据库操纵功能和过程化语言处理功能结合起来。
PL/SQL支持高级语言块的操作、条件判断、循环语句、嵌套等,与数据库核心的数据类型集成,使SQL变得更高效优化。
PL/SQL具有以下特点:
1.支持事务控制和SQL数据操作命令。
2.支持SQL的所有数据类型,并且在此基础上扩展了新的数据类型,也支持SQL的函数和运算符。
3.PL/SQL可以存储在Oracle服务器中,提高程序运行的性能。
4.服务器上的PL/SQL可以使用权限进行控制。
5.良好的移植性,可以移植到另一个Oracle数据库中。
6.可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断。
7.减少了网络交互,提高了程序性能。
PL/SQL 的结构
PL/SQL 程序的基本单位是块(block),一个基本的PL/SQL块由三部分组成:声明部分、执行部分和异常处理部分。
其中:
DECLARE(declare)-----------表示声明部分 DECLARE 作为开始标志。主要声明在可执行部分中调用的所有变量、常量、游标和用户自定义的异常处理。
BEGIN(begin) ------------------表示执行部分 BEGIN 作为标识符开始。主要是包括对数据库中进行操作 SQL 语句,以及对块中进行组织、控制的PL/SQL语句,这部分是必须的。
EXCEPTION(exception)------表示异常处理模块 EXCEPTION 作为开始标识。主要包括在执行过程中出错或者出现非正常现象时所作的相应处理。
其中执行部分是必要的,其他两部分是可选的。
eg:一个简单的 pl/sql 编程,只包含执行模块:
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO WORLD')
END;
------------输出的是:HELLO WORLD
eg:包括声明和执行模块:
DECLARE
v_age number(20);
BEGIN
v_age :=25;------------- := 表示赋值的意思
DBMS_OUTPUT.PUT_LINE('年龄是:' || v_age);
END;
--------输出的是:年龄是:25
eg:包括声明、执行和异常处理模块
DECLARE
v_ss_id number(10);
BEGIN
SELECT S_ID
INTO v_ss_id
FROM FRUITS
WHERE FRUITS.F_NAME='APPLE';
DBMS_OUTPUT.PUT_LINE('APPLE对应的编码是:' || v_ss_id);
EXCEPTION -----------表示声明部分
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('未找到对应信息');
WHEN TOO_MANY_ROWS THEN
DNMS_OUTPUT.PUT_LINE('对应行数很多');
END;
注:此时如果返回超过一条数据或者无数据返回则会执行异常模块操作。
PL/SQL规范
1.PL/SQL 中允许出现字符集
a.字母,包括大写小写。
b.数字0-9。
c.空格、回车符和制表符。
d.符号。
2.PL/SQL 中的大小写问题
a.关键字、内部函数和用户自定义的子程序,使用大写。
b.变量名、SQL中列名和表名,使用小写。
3.PL/SQL 中的空白
a.在等号或者比较操作符左右各留一个空格。
b.主要代码段之间用空行隔开。
c.结构词居左排列。
d.把同一结构的不同逻辑部分分开写在独立行上,即使这个结构词很短。
4.PL/SQL 中必须遵守的要求
a.标识符不区分大小写,例如:NAME、Name、name都是一样的。所有的名称在存储时自动修改为大写。
b.标识符中只能出现字母、数字和下划线,并且以字母开头。
c.不能使用保留字,一定要使用的话用必须使用双引号括起来。
d.标识符最多30个字符。
e.语句使用分号结束。
f.语句的关键字、标识符、字段的名称和表的名称都需要用空格的分割。
g.字符型和日期型数据都要用单引号括起来。
5.PL/SQL 中的注释
a.单行注释:使用 “--” (两根短横线)后面写注释。
b.多行注释:使用 “/* ……*/” ,中间接注释块。
网友评论