SQL的扩展
增加了过程化语句功能
基本结构是块
块之间可以互相嵌套
每个块完成一个逻辑操作
1. 定义部分
DECLARE 变量、常量、游标、异常等
定义的变量、常量等只能在该基本块中使用
当基本块执行结束时,定义就不再存在
2. 执行部分
BEGIN SQL语句、过程化SQL的流程控制语句 EXCEPTION 异常处理部分 END;变量和常量的定义 1. 变量定义
变量名 数据类型 [[NOT NULL]:=初值表达式]或
变量名 数据类型 [[NOT NULL] 初值表达式]
常量名 数据类型 ConSTANT :=常量表达式
常量必须要给一个值,并且该值在存在期间或常量的作用域内不能改变。如果试图修改它,过程化SQL将返回一个异常
变量名称 :=表达式
流程控制 过程化SQL功能1.条件控制语句
2.循环控制语句
3.错误处理
IF-THEN,IF-THEN-ELSE和嵌套的IF语句
(1)IF condition THEN
Sequence_of_statements;
END IF;
(2)IF condition THEN
Sequence_of_statements1;
ELSE
Sequence_of_statements2;
END IF;
(3)在THEN和ELSE子句中还可以再包含IF语句,即IF语句可以嵌套
LOOP,WHILE-LOOP和FOR-LOOP
(1)简单的循环语句LOOP
LOOP
Sequence_of_statements;
END LOOP;
多数数据库服务器的过程化SQL都提供EXIT、BREAK或
LEAVE等循环结束语句,保证LOOP语句块能够结束
(2)WHILE-LOOP
WHILE condition LOOP
Sequence_of_statements;
END LOOP;
每次执行循环体语句之前,首先对条件进行求值
如果条件为真,则执行循环体内的语句序列
如果条件为假,则跳过循环并把控制传递给下一个语句
(3)FOR-LOOP
FOR count IN [REVERSE] bound1 … bound2 LOOP
Sequence_of_statements;
END LOOP;
如果过程化SQL在执行时出现异常,则应该让程序在产生异常的语句处停下来,根据异常的类型去执行异常处理语句
SQL标准对数据库服务器提供什么样的异常处理做出了建议,要求过程化SQL管理器提供完善的异常处理机制
欢迎大家加我微信交流讨论(请备注csdn上添加)



