- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. PL/SQL是以块的方式设计,块中可以嵌套子块,子块可以位 于块中任何部分
3. 子块可以是PL/SQL中的一条命令
4. PL/SQL中可以使用条件判断,循环,游标等高级语言程序设 计方法
5. 模块式的过程化语言,以块为单位执行
6. 使用PL/SQL可以优化程序设计,得到更好的性能
(例如,执行 10个SQL语句,需要访问10次 Oracle核心,如果
2020/12/09
《PL/SQL程序设计》
6
PL/SQL数据类型扩展
数字型
NUMBER
存储整型及实型数据,可以定义精度和取值范围
✓ BINARY_INTEGER
可存储带符号整数,为整数计算优化性能
✓ DEC
NUMBER的子类型,存储实型数据
✓ DOUBLE PRECISION
NUMBER的子类型,高精度实数
辑 执行,其块结构如下:
块 DECLARE
说明部分:说明变量及常量
结 BEGIN
执行部分:使用SQL的DML语言事务处理
束 EXCEPTION
2020/1E2/0N9 D;
例外处理:处理错误及警告信息
《PL/SQL程序设计》
2
PL/SQL语言的特点
1. PL/SQL中可以定义变量,变量有其作用范围
✓ RAW 存储多媒体数据,如图象、声音、视频等 ✓ BLOB 大对象如图象、声音、视频等(Oracle8、Oracle8i)
PL/SQL基础
数据定义
标示符 数据类型 ; 标示符 数据类型 := PL/SQL表达式; 例如, v_salary number(7,2); v_ename varchar2(20) :=‘SMITH’;
对于SQL的数据类型进行了扩充,增加了新的数据类型,使 PL/SQL所支持的数据类型更灵活.
Oracle RDBMS 对于PL/SQL中引用的表名,列名进行语句检 查
对于SQL语句的执行结果,PL/SQL提供返回信息检查,通过
PL/SQL的例外处理,记录SQL的执行结果.
2020/12/09
《PL/SQL程序设计》
Declare 段中定义record类型数据,使某一
变量使用该record型数据.
定义方法:TYPE r_record is RECORD (
v_name emp.ename%TYPE,
v_job emp.job%TYPE,
v_sal emp.sal%TYPE);
变量定义
r_emp r_record;
2020/12/09
《PL/SQL程序设计》
11
PL/SQL基础
变量赋值 变量名 := 值;
v_salary := 890.76;
v_date :=‘25-MAR-99’;
Available_now :=FALSE;
%TYPE类型
Credit Real(7,2);
Debit Credit%TYPE;
5
PL/SQL基础
1. 变量的使用 2. 注释 3. 数据类型
数据类型
4.
和其他高级语言一样,在PL/SQL中可以使用变 量
单行注释: --
多行注释: /*
*/
Float
日期型 Date
字符型 CHAR,VARCHAR2 子类 数字型 NUMBER
Int Real Smallint
布尔型 BOOLEAN(TRUE,FALSE,NULL)
10个SQL组成一个PL/SQL程序,则只需访问一次Oracle 核
心,将结果一次返回给用户,则程序执行效率高,节省时间,降
20低20/1通2/09信量)
《PL/SQL程序设计》
3
PL/SQL语言的特点
减少对于Oracle核心的访问,降低网络负责 数据库数据类型集成
PL/SQL支持全部的SQL数据类型,这些共享的数据类型与 SQL所提供的直接存取相结合,使PL/SQL与Oracle数 据字典结合成一体. PL/SQL与Oracle RDBMS集成在一起,可以使用PL/SQL 的集成数据类型,使变量的数据类型在数据库的操作中实 时确定.
PL/SQL的使用,使SQL成为一种高级程序设计语言,支持高 级语言的块操作,条件判断,循环语句,嵌套等,与数据库核心的 数据类型集成,使SQL 的程序设计效率更高.
逻
PL/SQL是一种块结构语言,构成PL/SQL的基本单位是逻辑 块,块中可以嵌套子块,以块为单位向Oracle Server传递数据
字符型
✓ VARCHAR2 存放可变长字符串,有最大长度限制
✓ CHAR 字符型,固定长度 ✓ LONG 长字符型 ✓ CLOB 大对象字符(Oracle8、Oracle8i)
日期型
✓ Date 存储日期数据
PL/SQL数据类型扩展
布尔型
✓ BOOLEAN 结果是TRUE或FALSE
二进制数据
✓ INTEGER NUMBER的子类型,整数
✓ INT
NUMBER的子类型,整数
PL/SQL数据类型扩展
数字型
✓ SMALLINT
NUMBER的子类型,取值范围比INTEGER小
✓ NUMERIC NUMBER的子类型,与NUMBER等价
✓ REAL
NUMBER的子类型,存储实型数据
PL/SQL数据类型扩展
My_name Employee.ename%TYPE;
%TYPE 属性 + 不必知道My_name的真正数据类型
+ 当数据库中列ename列定义改变时,数 据库运行时自动修改.
%ROWTYPE:
2行020类/12/0型9
《PL/SQL程序设计》
12
PL/SQL程序设计
PL/SQL基础
PL/SQL 的记录类型 把逻辑相关的数据作为一个单元存储起来,在
《Oracle9i PL/SQL程序设计》
Procedurቤተ መጻሕፍቲ ባይዱl Language
PL/SQL 概述
PL/SQL是Oracle对关系数据库语言SQL的过程化扩充,它将数据库技术和 过程化程序设计语言联系起来,是一种应用开发语言,可使用循环,分支处理 数据,将SQL的数据操纵功能与过程化语言数据处理功能结合起来.
2020/12/09
《PL/SQL程序设计》
4
PL/SQL与SQL语言结合
PL/SQL语句含有SQL的DML语句,检索及事务处理 PL/SQL中可以使用的SQL语句如下:
INSERT
UPDATE
COMMIT ROLLBACK
DELETE SELECT INTO SAVEPOINT
支持 RDBMS 的所有数据类型