- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 PL/SQL程序设计 PL/SQL(Procedural Language/SQL)是ORACLE专有的SQL扩展语言 ,它可以像其他高级编程语言一样,编写出各种完整的数据库操作功能的程序。由于PL/SQL由Oracle系统本身编译执行,所以程序运行效率更高 PL/SQL执行过程与开发工具 PL/SQL开发工具 SQL *PLUS Procedure Builder Oracle Form、Oracle Reports PL/SQL Developer PL/SQL块 PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL 程序包含了一个或多个逻辑块,每个块都可以划分为三个部分:定义部分、执行部分、异常处理部分。 声明部分 声明部分以关键字DECLARE开始,BEGIN结束。主要用于声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。 可执行部分 执行部分是PL/SQL块的功能实现部分,以关键字BEGIN开始,EXCEPTION或END结束(如果PL/SQL块中没有异常处理部分,则以END结束)。该部分通过变量赋值、流程控制、数据查询、数据操纵、数据定义、事务控制、游标处理等实现块的功能。 异常处理部分 异常处理部分以关键字EXCEPTION开始,END结束。该部分用于处理该块执行过程中产生的异常。 注意: 执行部分是必需的,而声明部分和异常部分是可选的; 可以在一个块的执行部分或异常处理部分嵌套其他的PL/SQL块; 所有的PL/SQL块都是以“END;”结束 【例】 一个简单实例 SET SERVEROUTPUT ON BEGIN dbms_output.put_line(‘HELLO WORLD’); END; 标识符命名规则 标识符以字母开头,后边可以跟字母、数字、货币符号$、下划线_和”#” 标识符的最大长度为30字符,并且所有字符都是有效的。 合法:X v_studentID TempVar 非法:X+y _temp 符号:在Oracle中,符号常用来替换变量提高Oracle数据库系统的交互性 : 例如: Select * from emp where empno=x; 显示如下: 请输入x的值: 单引号(‘):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。 双引号():在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。 变量与常量的定义 变量定义的一般格式: variablename [CONSTANT]datatype [[NOT NULL] {DEFAULT|:=} expression]; 说明 每行只能定义一个标识符。 如果加上关键字CONSTANT,则表示所定义的标识符为一个常量,必须为它赋初值。 如果定义的标识符不能为空,则必须加上关键字NOT NULL,并赋初值。 为标识符赋值时,使用赋值符号‘:=’,默认值为空。 例:DECLARE v1 NUMBER(4); v2 NUMBER(4) NOT NULL :=10; v3 CONSTANT NUMBER(4) DEFAULT 100; BEGIN IF v1 IS NULL THEN DBMS_OUTPUT.PUT_LINE(V1 IS NULL!); END IF; DBMS_OUTPUT.PUT_LINE(v2|| ||v3); END; 声明一个变量,使它的类型与某个变量或数据库基本表中某个列的数据类型一致,可以使用%TYPE。 示例 v_empno1 emp.empno%TYPE; v_empno2 v_empno1%TYPE; 使用%ROWTYPE属性则可以声明一个类型与某个记录或基于表或游标的行对象一致的数据类型,也称为记录对象 示例: v_emprecord1 emp%ROWTYPE; PL/SQL中SQL语句 可以在PL/SQL中执行的SQL语句包括 SELECT DML(UPDATE、DELETE、INSERT) 事务控制语句(COMMIT、ROLLBACK、SAVEPOINT) 注意DDL语句不可以直接使用 SELECT…INTO SELECT…INTO语句只能查询一个记录的信息,如果没有查询到任何数据,则会产生NO_DATA_FOUND异常;如果查询到多个记录,则会产生TOO_
文档评论(0)