PLSQL程序设计PPT课件

合集下载

第2讲 PLSQL程序设计

第2讲 PLSQL程序设计
37
15.3 控制结构 选择结构 循环结构 跳转结构
38
15.3.1选择结构
IF语句
IF condition1 THEN statements1; [ELSIF condition2 THEN statements2;] …… [ELSE else_statements]; END IF; 注意 条件是一个布尔型变量或表达式,取值只能
数字类型 字符类型 日期/区间类型 行标识类型 布尔类型 原始类型 LOB类型 记录类型 集合类型
20
PL/SQL中常用的基本数据类型
分类
数字类型
字符类型
日期/区间类型 行标识类型
数据类型
NUMBER、BINARY_NUMBER PLS_NUMBER VARCHAR2、CHAR、LONG、
字符串比较
填充比较:通过在短字符串后添加空格,使两个字符串达到相 同长度,然后根据每个字符的ASCII码进行比较。
非填充比较:根据每个字符的ASCII码进行比较,最先结束的 字符串为小。
PL/SQL中规定,对定长的字符串(CHAR类型的字 符串和字符串常量)采用填充比较;如果比较的字符 串中有一个是变长字符串(VARCHAR2类型的字符 串),则采用非填充比较。
如果PL/SQL块相互嵌套,则在内部块中声明的变 量是局部的,只能在内部块中引用,而在外部块 中声明的变量是全局的,既可以在外部块中引用, 也可以在内部块中引用。
如果内部块与外部块中定义了同名变量,则在内 部块中引用外部块的全局变量时需要使用外部块 名进行标识。
27
<<OUTER>> DECLARE v_ename CHAR(15); v_outer NUMBER(5); BEGIN v_outer :=10; DECLARE v_ename CHAR(20); v_inner DATE; BEGIN v_inner:=sysdate; v_ename:='INNER V_ENAME'; OUTER.v_ename:='OUTER V_ENAME'; END; DBMS_OUTPUT.PUT_LINE(v_ename); END;

PL-SQL程序设计PPT2

PL-SQL程序设计PPT2

例子——为新雇员存储其所有信息。
CREATE OR REPLACE PROCEDURE hire_emp (v_emp_no IN emp.empno%TYPE, v_emp_name IN emp.ename%TYPE, v_emp_job IN emp.job%TYPE, v_mgr_no IN emp.mgr%TYPE, v_emp_hiredate IN emp.hiredate%TYPE, v_emp_sal IN emp.sal%TYPE, v_emp_comm IN m% TYPE, v_dept_no IN emp.deptno%TYPE) IS
在数据库的安全控制下可被 应用调用 在forms级安全控制下可被Forms 应用调用 不可以调用Forms的过程 可以调用存储过程
⑵ 创建过程的语法
CREATE [OR REPLACE] PROCEDURE [模式名.]过 程名 [(参数名 [IN | OUT | IN OUT] 数据类型 …)] {IS | AS} [说明部分] BEGIN 语句序列 [EXCEPTION 例外处理] END [过程名];
注释:
● 请注意所有输出参数在过程体中的用法,总是出现在 select语句中的 INTO关键字后面,或出现在赋值语句的左边。
例子: 利用 IN OUT参数在调用者和过程之间传递值 将一个7位数字转换成标准格式的电话号码。
CREATE OR REPLACE PROCEDURE add_dash (v_phone_no IN OUT VARCHAR2) IS BEGIN v_phone_no:=SUBSTR (v_phone_no,l,3) ||„-‟|| SUBSTR (v_phone_no,4,4); END add_dash;

《PLSQL经典教程》课件

《PLSQL经典教程》课件

PLSQL变量与常量
了解如何定义和使用变量以及常量,实现 数据存储和常量值的复用。
PLSQL条件语句
学习使用条件语句(IF-THEN, IF-THEN-ELSE, IF-THEN-ELSIF)控制程序的执行流程。
PLSQL循环语句
掌握使用循环语句(LOOP, WHILE, FOR) 实现重复执行某一段代码的功能。
《PLSQL经典教程》PPT课 件
本课程旨在介绍PLSQL编程的基础知识和技能。通过本课程,您将全面了解 PLSQL语言的特点和高级应用,提升自己的编程能力。
简介
本课程为PLSQL经典教程PPT课件,旨在介绍PLSQL编程基础知识和技能。
第一章:PLSQL基础
PLSQL简介
PLSQL是Oracle数据库的编程语言,具有丰 富的数据处理和逻辑控制功能。
强制执行。
结束语
感谢您的耐心学习!希望本课程能对您的PLSQL编程有所帮助。
第二章:PLSQL高级应用
1
PLSQL异常处理
学习如何编写异常处理程序以及如
PLSQL游标
2
何定义和抛出异常。
了解如何定义、使用和操作游标,
处理和管理查询结果集。来自3PLSQL存储过程
学习如何定义和使用存储过程,提
PLSQL触发器
4
高编程的模块化和代码复用性。
掌握如何定义和使用触发器,实现 数据库操作的自动化和业务规则的

第4章-使用PLSQL语言PPT课件

第4章-使用PLSQL语言PPT课件
select * into v_dept_table(0) from dept where deptno=10; select * into v_dept_table(1) from dept where deptno=20; dbms_output.PUT_LINE('编号:'||v_dept_table(0).deptno||' 名称:'
v_emp.empno:=&no; select * into v_emp from emp where empno=v_emp.empno; dbms_output.PUT_LINE('更新前的奖金'||nvl(v_m,0)); if v_m is null then
update emp set comm=v_emp.sal*0.1 where empno=v_emp.empno; elsIf v_m<1000 then
||v_dept_table(0).dname||' 所在地:'||v_dept_table(0).loc); dbms_output.PUT_LINE('编号:'||v_dept_table(1).deptno||' 名称:'
||v_dept_table(1).dname||' 所在地:'||v_dept_table(1).loc); end;
2021/1/11
.
5
PL/SQL块
所有的PL/SQL程序都以块作为基本单位
块中包含过程化语句和SQL的DML语句。这些块可以按顺序出现 ,也可以相互嵌套(一个块在另一个块的内部)
块的分类
匿名块
匿名块是出现在应用程序中的没有名字且不存储到数据库中的块

PLSQL编程基础ppt课件

PLSQL编程基础ppt课件
5
7.2 变量的声明与赋值
变量声明并使用变量: 变量名称可以有字母、数字、_、$、#等组成。 所有变量名称要求以字母开头,不能是Oracle中的保留字 变量的长度最多只能为30个字符 变量不区分大小写
6
7.2 变量的声明与赋值
声明变量语法: 变量名称 [CONSTANT] 类型 [not NULL] [:=value] 使用%TYPE声明变量类型: 在编写PL/SQL程序时,如果希望某一个变量与指定数据表中某 一列的类型一样,则可以采用 “变量定义”表名称.表名称%TYPE的格式
DBMS_OUTPUT.put_line('雇员:' || v_eno || '的收入为高工资。') ;
WHEN v_salary >= 2000 AND v_salary <3000 THEN
CASE语句
Case语句是一种多条件的判断语句,其功能与IF……elseif……else类似
Case语法:
Case[变量] when [值|表达式] THEN
执行语句块; when [值|表达式] THEN
执行语句块; Else
条件都不满足时执行语块; End case
22
7.4.1 分支结构
范例:使用CASE进行多条件判断
END IF;
19
7.4.1 分支结构
范例:用户输入一个雇员编号,根据它所在的部门给 上涨工资,规则:
·10部门上涨10%,20上涨20%,30上涨30%; ·但是要求最高不能超过5000,超过5000就停留在 5000。
20
7.4.1 分支结构
DECLARE
v_empSal
emp.sal%TYPE ;

Oracle PL、SQL程序设计培训课程ppt(共25页)

Oracle PL、SQL程序设计培训课程ppt(共25页)

对于有触发语句影响每一行记录
20
触发器主体可以访问的表
变化表:被DML语句正在修改的表,义既定义触 发器的表

限制表:有些表在创建的时候就带有参考完整 性限制的声明主建与外建

触发器主体中的限制

不可以读取或修改任何变化表
21
创建行级触发器:
当触发器已经存在时,使用Replace选项。 Update中的of是可选项,用于指定Update语句要
3、可以降低网络的通信量
4、保证数据库的安全性和完整性

通过存储过程不仅可以使没有权限的用户在控制之下间接地存取数据库,保
证数据的安全;而且可以使相关的动作在一起发生,从而可以维护数据库的完
整性。
5、灵活性

存储过程可以用流控制语句编写,具有很强的灵活性,可以完成复杂的判断
和运算,可以根据条件执行不通SQL语句。
修改的列。 根据进行一个操作时触发器的触发次数决定是用
语句级、还是行级触发器。 当某一操作结果只影响一行时,语句级触发器与
行触发器效果相同。当操作影响到数据库多行数 据时,语句级触发器只触发一次,而行级触发器 触发多次。
……; End 包名;
9
创建包
10
创建包体
1
----定义过程
11
创建包体
2 3
----定义过程
12
包的调用
13
Oracle Database Trigger 数据库触发器设计
14
数据库触发器作用
防止非法的数据库操纵、维护数据库安全 对数据库的操作进行审计,存储历史数据 完成数据库初始化处理 控制数据库的数据完整性 进行相关数据的修改 完成数据复制 自动完成数据库统计计算 限制数据库操作的时间、权限等,控制实体的

PLSQL课件.ppt

PLSQL课件.ppt

1 PL/SQL简介
❖ SQL是属于第四代语言(4GL),其执行特点是非 过程化(描述性语言)。
❖ 然而,对于有些复杂的业务流程又要求相应的程序 来描述,那么4GL就有些无能为力了。PL/SQL的 出现正是为了解决这一问题,PL/SQL是一种过程 化语言,属于第三代语言,它与C,C++,Java等语言 一样关注于处理细节,因此可以用来实现比较复杂 的业务逻辑。
(4)可以使用Oracle数据工具管理存储在服务器中的PL/SQL 程序的安全性。可以授权或撤销数据库其他用户访问 PL/SQL程序的能力。
(5)PL/SQL代码可以使用任何ASCII文本编辑器编写,所以 对任何Oracle能够运行的操作系统都是非常便利的。
开发运行环境
❖ PL/SQL 不需要显式的安装或许可。它是 Oracle数据库的隐式部分。PL/SQL 编译器 和解释器也嵌入到多个 Oracle 工具中。
❖ Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
❖ v_id number; 声明变量 ❖ v_id CONSTANT NUMBER:=0 常量声明并赋值 ❖ birthdate DATE; ❖ emp_count SMALLINT DEFAULT 0; ❖ acct_id VARCHAR2(5) NOT NULL := 'AP001'; ❖ acct_id VARCHAR2(5) NOT NULL; -- 不合法,
变量赋值
❖ v_id:=5; --在程序执行部分赋值 ❖ Select a.deptno into v_dept … ❖ Fetch c1 into vname

PLSQL开发(精)PPT课件

PLSQL开发(精)PPT课件
主要用于从表中取出查询到的行数据
.
20
PL/SQL RECORD结构
记录类型可以包含一个或多个域,每个域相当于 记录类型变量的一个属性.在使用记录变量类型 时,实际上是对记录类型变量的属性进行操作. 每个域都可以是不同的数据类型,存放不同类型 的数据
Field1 (数据类型) Field2 (数据类型) Field3 (数据类型)
WHEN OTHERS THEN
ROLLBACK;
INSERT INTO exception_table (message)
VALUES (‘Some error occurred in the database.’);
COMMIT;
END;
.
9
PL/SQL环境
PL/SQ L
Block
在数据库执行PL/SQL程序的时候,PL/SQL语句和SQL 语句被分别解析和执行的。PL/SQL块被数据库内 部的PL/SQL引擎提取,将SQL语句取出送给Oralce的 SQL引擎。两种语句分别在两种引擎中分析处理,在 数据库内部完成数据交互,处理的过程
Table类型没有长度限制,可以动态增长.表类型 中的第二部分类似与数组中的值,这个部分必须 是一个已经确定的简单类型,不能是其他的复合 类型
表类型的结构很像数组.第一部分使一个按1递
增的整形数字,起到数字索引的作用,第二部分使
一种确定的简单类型,用来存放每个索引号对应
的具体的数值
.
17
PL/SQL TABLE 结构
BEGIN
SELECT department_id INTO v_dept_id
FROM employees
WHERE employee_id = 100;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
2009
Oracle10g 数据库基础教程
(1)PL/SQL块的组成
PL/SQL程序的基本单元是语句块,所有的 PL/SQL程序都是由语句块构成的 。
一个完整的PL/SQL语句块由3个部分组成。
DECLARE 声明部分,定义变量、数据类型、异常、局部子程序等
BEGIN 执行部分,实现块的功能
2009
Oracle10g 数据库基础教程
PL/SQL程序设计
1
2009
PL/SQL概述 PL/SQL基础 控制结构 游标 异常处理 存储子程序 包 触发器 集合 批绑定
内容
Oracle10g 数据库基础教程
2
2009
Oracle10g 数据库基础教程
要求
掌握PL/SQL程序设计基础知识 掌握存储过程、函数、包、触发器的应用 掌握集合、批绑定的应用
3
2009
Oracle10g 数据库基础教程
1 PL/SQL概述
PL/SQL特点 PL/SQL功能特性 PL/SQL执行过程与开发工具
4
2009
Oracle10g 数据库基础教程
1.1 PL/SQL特点
与SQL语言紧密集成。 减小网络流量,提高应用程序的运行性能。
模块化的程序设计功能,提高了系统可靠性。 服务器端程序设计,可移植性好。
8
2009
Oracle10g 数据库基础教程
2 PL/SQL基础
PL/SQL程序结构 词法单元 数据类型 变量与常量 PL/SQL记录 编译指示 PL/SQL中的SQL语句
9
2009
Oracle10g 数据库基础教程
2.1 PL/SQL程序结构
PL/SQL块的组成
PL/SQL块分类
匿名块
匿名块是指动态生成,只能执行一次的块,不 能由其他应用程序调用。
命名块
命名块是指一次编译可多次执行的PL/SQL程 序,包括函数、存储过程、包、触发器等。它 们编译后放在服务器中,由应用程序或系统在 特定条件下调用执行。
17
2009
Oracle10g 数据库基础教程
命名块示例
CREATE OR REPLACE PROCEDURE showavgsal (p_deptno NUMBER) AS v_sal NUMBER(6,2); BEGIN SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=p_deptno; DBMS_OUTPUT.PUБайду номын сангаас_LINE(v_sal); END showavgsal;
[ ] ? ; :, . “ ‘
DECLARE v_ename VARCHAR2(10); BEGIN SELECT ename INTO v_ename FROM emp WHERE empno=7844; DBMS_OUTPUT.PUT_LINE(v_ename); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('There is not such a employee'); END;
15
2009
Oracle10g 数据库基础教程
注意
若要在SQL*Plus环境中看到 DBMS_OUTPUT.PUT_LINE方法的输出结果,必 须将环境变量SERVEROUTPUT设置为ON。
SET SERVEROUTPUT ON
16
2009
Oracle10g 数据库基础教程
(2)PL/SQL块分类
PL/SQL块
SQL语句 客户端应用程序
PL/SQL引擎 过程化语句执行器
块中SQL语句 SQL执行器 数据库服务器
7
2009
Oracle10g 数据库基础教程
PL/SQL开发工具
SQL *PLUS Procedure Builder Oracle Form、Oracle Reports PL/SQL Developer
EXCEPTION 异常处理部分,处理程序执行过程中产生的异常
END;
11
2009
Oracle10g 数据库基础教程
声明部分
主要用于声明变量、常量、数据类型、游标、异常处理 名称以及本地(局部)子程序定义等。
可执行部分
执行部分是PL/SQL块的功能实现部分。该部分通过变量 赋值、流程控制、数据查询、数据操纵、数据定义、事 务控制、游标处理等实现块的功能。
异常处理部分
异常处理部分用于处理该块执行过程中产生的异常。
12
2009
Oracle10g 数据库基础教程
注意:
执行部分是必须的,而声明部分和异常部分是可选的 可以在一个块的执行部分或异常处理部分嵌套其他的
PL/SQL块; 所有的PL/SQL块都是以“END;”结束。
13
2009
Oracle10g 数据库基础教程
18
2009
字符集 标识符 分隔符 常量值 注释
Oracle10g 数据库基础教程
2.2 词法单元
19
2009
Oracle10g 数据库基础教程
(1)字符集
PL/SQL的字符集包括:
大小写字母:A~Z,a~z 数字:0~9 空白:制表符、空格和回车 数字符号:+ - * / 〈 〉 = 标点符号:~ ! @ # $ % ^&* ()_ | { }
14
2009
Oracle10g 数据库基础教程
DECLARE v_sal NUMBER(6,2); v_deptno NUMBER(2); BEGIN BEGIN SELECT deptno INTO v_deptno FROM emp WHERE empno=7844; END; SELECT avg(sal) INTO v_sal FROM emp WHERE deptno=v_deptno; DBMS_OUTPUT.PUT_LINE(v_sal); END;
5
2009
Oracle10g 数据库基础教程
1.2 PL/SQL功能特性
语句块结构 异常处理 变量和类型 条件语句 循环结构 游标 过程、函数和触发器 包 集合 动态SQL 批绑定 对象特性
6
2009
Oracle10g 数据库基础教程
1.3 PL/SQL执行过程与开发工具
PL/SQL执行过程
相关文档
最新文档