- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16章PLSQL程序设计
2007-9 东北大学东软信息学院计算机系 2007-9 东北大学东软信息学院计算机系 第16章 PL/SQL程序设计 本章内容 PL/SQL概述 PL/SQL基础 控制结构 游标 异常处理 存储子程序 包 触发器 集合 批绑定 本章要求 掌握PL/SQL程序设计基础知识 掌握存储过程、函数、包、触发器的应用 掌握集合、批绑定的应用 16.1 PL/SQL概述 PL/SQL特点 PL/SQL功能特性 PL/SQL执行过程与开发工具 16.1.1 PL/SQL特点 与SQL语言紧密集成。 减小网络流量,提高应用程序的运行性能。 模块化的程序设计功能,提高了系统可靠性。 服务器端程序设计,可移植性好。 16.1.2 PL/SQL功能特性 语句块结构 异常处理 变量和类型 条件语句 循环结构 游标 过程、函数和触发器 包 集合 动态SQL 批绑定 对象特性 16.1.3 PL/SQL执行过程与开发工具 PL/SQL执行过程 PL/SQL开发工具 SQL *PLUS Procedure Builder Oracle Form、Oracle Reports PL/SQL Developer 16.2 PL/SQL基础 PL/SQL程序结构 词法单元 数据类型 变量与常量 PL/SQL记录 编译指示 PL/SQL中的SQL语句 16.2.1 PL/SQL程序结构 PL/SQL块的组成 PL/SQL块分类 (1)PL/SQL块的组成 PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的 。 一个完整的PL/SQL语句块由3个部分组成。 声明部分 主要用于声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。 可执行部分 执行部分是PL/SQL块的功能实现部分。该部分通过变量赋值、流程控制、数据查询、数据操纵、数据定义、事务控制、游标处理等实现块的功能。 异常处理部分 异常处理部分用于处理该块执行过程中产生的异常。 注意: 执行部分是必须的,而声明部分和异常部分是可选的 可以在一个块的执行部分或异常处理部分嵌套其他的PL/SQL块; 所有的PL/SQL块都是以“END;”结束。 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; 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; 注意 若要在SQL*Plus环境中看到DBMS_OUTPUT.PUT_LINE方法的输出结果,必须将环境变量SERVEROUTPUT设置为ON。 SET SERVEROUTPUT ON (2)PL/SQL块分类 匿名块 匿名块是指动态生成,只能执行一次的块,不能由其他应用程序调用。 命名块 命名块是指一次编译可多次执行的PL/SQL程序,包括函数、存储过程、包、触发器等。它们编译后放在服务器中,由应用程序或系统在特定条件下调用执行。 命名块示例 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.PUT_LINE(v_sal); END showavgsal; 16.2.2 词法单元 字符集 标识符 分隔符 常量值 注释 (1)字符集 PL/SQL的字符集包括: 大小写字母:A~Z,a~z 数字:0~9 空白:制表符、空格和回车 数字符号:+ - * / 〈 〉 = 标点符号:~ ! @ # $ % ^* ()_ | { } [ ] ? ; :, . “ ‘ 注意
文档评论(0)