【笔记】面向过程的 SQL 扩展 (一)
1.服务器端程序
存储过程:用户创建的,使用 SQL 和其他语言(如 PL/SQL,Oracle 对 SQL 扩展的过程式语言)编写的过程或函数,存储在数据库内部,用来完成一个特定的任务
存储过程优点:
2.PL/SQL 的基本语法
PL/SQL 的基本规则
每条语句可以写在多行
以;结尾
保留字和变量对大小写不敏感
--单行注释;/**/多行注释
块结构
一个块结构语法地位等同于一条语句
块的整体构成
[<<块名>>]
[DECLARE 声明部分]
BEGIN 执行部分
[EXCEPTION 错误处理部分]
END;
变量的定义与使用
简单示例
定义一个 NUMBER 型变量,初值为 NULL
复制代码
注意:NOT NULL 类型的变量必须赋初值
复制代码
设置变量的初始值和缺省值
复制代码
%TYPE
使用其他变量或字段的数据类型,但不继承 NOT NULL 属性
复制代码
经常用于表中字段的数据类型
复制代码
不需知道精确类型
在表定义发生变化时不用修改程序
%ROWTYPE
使用其他表和游标定义记录变量
复制代码
赋值计算比较
赋值运算符:=
作用域
外层定义的变量可以在内层块中使用
可在不同块中定义同名变量
内层块可通过外层块的块名引用外层变量
可以直接在 PL/SQL 中使用 DQL 和 DML
在 SQL 语句中使用变量的值
可使用表达式的地方都可以使用变量
直接写变量名,不需要额外的语法要素
将查询结果赋给一个变量
复制代码
要求 SELECT 语句必须返回 1 行结果,运行时返回多行或 0 行(与查询子句不同)会报错
必须在逻辑上保证返回 1 条记录,(使用主键或聚组函数等
3.控制流语句
定义标号
<<标号名>>
跳转语句
GOTO 标号名;
EXIT 标号名 [WHEN 条件];
空语句
NULL;
返回语句
RETURN
条件语句
复制代码
复制代码
复制代码
循环语句
复制代码
while 循环
复制代码
for 循环
复制代码
版权声明: 本文为 InfoQ 作者【w010w】的原创文章。
原文链接:【http://xie.infoq.cn/article/e1b429cc79dfeaf2fa75eebd6】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论