第4篇PLSQL程序设计.pptVIP

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 PL/SQL程序设计 4.1 PL/SQL概述 4.2 PL/SQL语法基础 4.3 游标 4.4 过程与函数 4.5 触发器 教学目的、要求 了解PL/SQL程序的基本结构。 掌握常量、变量、数据类型的定义。 掌握条件语句、循环语句及例外的编程。 理解游标的概念及游标的属性,掌握显式游标的定义及操作步骤。 理解存储过程、存储函数、触发器的概念。 掌握存储过程、存储函数及语句级触发器和行触发器的编程。 4.1 PL/SQL概述 PL/SQL(Procedure Language/SQL)语言是对SQL语言的过程化扩充,是用于从各种环境中访问Oracle数据库的一种比较复杂的编程语言。它提高了SQL语言的数据处理的效率,并支持复杂问题的处理。 例: 假设我们想修改一个学生选课记录的课程代号(更改课程),如果这个学生不存在,我们就想创建一个新记录。 DECLARE V_NewCno CHAR(8) : V_Sno CHAR(6) :=200401; BEGIN UPDATE sc SET cno=V_NewCno WHERE sno=V_Sno; IF SQL%NOTFOUND THEN INSERT INTO sc(sno,cno) VALUES(V_Sno,V_NewCno); END IF; END; 4.2 PL/SQL程序语法基础 4.2.1 PL/SQL语句块 PL/SQL程序的基本单元是语句块,所有PL/SQL程序都是由语句块组成。这些语句块可以是顺序出现的,也可以是相互嵌套的(一个在另一个的内部)。 一个PL/SQL块由三部分组成。 DECLARE(可选) 说明部分(变量、光标、例外等说明,被说明项的作用域仅限于本逻辑块中) BEGIN(必须有) 执行部分(程序主体) EXCEPTION(可选) 例外处理部分 END; PL/SQL块的执行顺序是从执行部分的第一个语句开始,依程序流程执行。如果一切正常,块结束于执行部分;如果执行中出现例外,程序控制将转移到例外处理部分。例外处理完成后,块的执行也就结束。 4.2.2 标识符 标识符用来命名PL/SQL对象,例如变量、光标、类型和子程序等。 标识符由字母开头,后面可选地跟随任何字符序列,包括字母、数字、货币符号、下划线和#字符,其它字符都是非法的。 标识符的最大长度是30个字符,不区分大小写。 标识符不能使用保留字。 4.2.3 操作符 % 属性指示符 : 绑定变量操作符 := 赋值操作符 .. 范围操作符 ** 指数操作符 4.2.4 变量和常量说明 ⑴ 变量说明 v_ename CHAR(10); married BOOLEAN :=TRUE; 可用下划线将一个单字母和其它部分隔开来说明变量的用途。 v--程序变量 t--用户定义的类型 e--用户定义的例外 p--函数参数 数据类型可以是SQL语言中的数据类型,也可以是PL/SQL中的数据类型,如BOOLEAN。 ⑵ 常量定义 credit_limit CONSTRAINT REAL :=5000.00; 常量定义后,在程序中只能引用而不能改变其值。 ⑶ %TYPE 在定义一个变量时可以引用表中列的类型与结构。 v_ename emp.ename%TYPe; 好处: ①即使不清楚emp表的列定义细节,也可以保证两者定义一致。 ②emp表中的列定义变了,也不需改变PL/SQL程序。 ⑷ 定义记录类型 TYPE record_type IS RECORD ( field1 type1 [NOT NULL] [:=exprt1], field2 type2 [NOT NULL] [:=exprt2]); record_type是新类型的名字,field1是该记录中字段的名字,type1是相关字段的类型。 例: DECLARE TYPE t_sample IS RECORD ( sno CHAR(6), sname VARCHAR2(10), sex CHAR(2) :=男); v_sample1 t_sample; v_sample2 t_sample; 记录赋值: v_sample.sno:=200408; v-sample2:=v_sample1; ⑸ %ROWTYPE emp_rec emp%ROWTYPE; 该语句定义了一个记录型变量,对应emp表的一个记录结构。记录的各分量的名字采用emp表的列名。 emp_rec.ename:=张三; ⑹ 变量初始化 一般而言,如果变量的取值可以被确定,那么最好为其初始化一个数值。如果变量末被初始化,其值为NULL。 4.2.

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档