欢迎来到天天文库
浏览记录
ID:40406399
大小:818.01 KB
页数:19页
时间:2019-08-01
《oracle数据库ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章数据库配置助手及PL/SQL语言PL/SQL语言基础PL/SQL程序的定义标准化的SQL语言对数据库进行各种操作时,每次只能执行一条语句,为了使得Oracle数据库本身就能处理一些复杂的管理任务,从Oracle6开始,Oracle公司在标准SQL语言的基础上发展了自己的PL/SQL(ProceduralLanguage/SQL,过程化SQL语言)语言,它是将变量、控制结构、过程和函数等结构化程序设计的要素引入了SQL语言中,这样就能够编写比较复杂的SQL程序了,利用PL/SQL语言编写的程序也称为PL/
2、SQL程序块。主要特点PL/SQL程序块的主要特点具有模块化的结构。使用过程化语言控制结构。能够进行错误处理。2.PL/SQL程序结构概述完整的PL/SQL程序结构可以分为3个部分:(1)定义部分以declare为标识,在该部分中定义程序中要使用的常量、变量、游标和例外处理名称,PL/SQL程序中使用的所有定义必须在该部分集中定义(2)执行部分以begin为开始标识,以end为结束标识。该部分是每个PL/SQL程序所必备的,包含了对数据库的操作语句和各种流程控制语句等。(3)异常处理部分该部分包含在
3、执行部分中,以exception为标识,对程序执行中产生的异常情况进行处理。一个完整的PL/SQL程序的总体结构如下所示:delacre定义语句段begin执行语句段exception异常处理语句段end注意:有的PL/SQL程序的总体结构程序比较简单,往往省略异常处理部分。PL/SQL的基本语法要素一、常量1.定义常量的语法格式2.常量的示例常量名constant类型标识符[notnull]:=值;declarepiconstantnumber(9):=3.1415926;begincommit;end;定
4、义了名为pi的数字型常量,长度为9常量名,包括后面的变量名都必须以字母开头,不能有空格,不能超过30个字符长度,同时不能和保留字同名,常(变)量名称不区分大小写,在字母后面可以带数字或特殊字符。括号内的notnull为可选参数,若选用则表明该常(变)量不能为空值。二、基本数据类型变量1.基本数据类型表4-2基本数据类型表类型标识符说明number数字型int整数型pls_integer整数型,产生溢出时出现错误binary_integer整数型,表示带符号的整数char定长字符型,最大255个字符varcha
5、r2变长字符型,最大2000个字符long变长字符型,最长2GBdate日期型boolean布尔型(TRUE、FALSE、NULL三者之一)2.基本数据类型变量的定义方法变量名类型标识符[notnull]:=值;3.基本数据类型变量的使用示例例4.2:在SQLPlusWorksheet中执行下列PL/SQL程序,该程序定义了名为age的数字型变量,它的长度为3,初始值为26,具体代码如下:declareagenumber(3):=26;begincommit;dbms_output.put_line(age)
6、;end;常见的复合数据类型变量有以下几种:三、复合数据类型变量1.使用%type定义的变量让PL/SQL中变量的类型和数据表中的字段的数据类型一致。示例代码:declaremydatescott.emp.hiredate%type;begincommit;end;定义了名为mydate的变量,其类型和scott.emp数据表中的hiredate字段类型是一致2.定义记录类型变量引用记录型变量的方法是:记录变量名.基本类型变量名。示例代码:declaretypemyrecordisrecord(myrecor
7、dnumberint,mycurrentdatedate);srecordmyrecord;beginselectempno,hiredateintosrecordfromscott.empwheresal=1300;dbms_output.put_line(srecord.mycurrentdate);end;定义了名为myrecord的记录类型,该记录类型由整数型的myrecordnumber和日期型的mycurrentdate基本类型变量组成,srecord是该类型的变量。3.使用%rowtype定义变
8、量使用%type可以使变量获得字段的数据类型,而使用%rowtype可以使变量获得整个记录的数据类型。注意两者定义的不同:使用%type定义变量:变量名数据表.列名%type。使用%rowtype定义变量:变量名数据表%rowtype。引用%rowtype定义的变量时,使用:变量名.列名。Declaremytablescott.emp%rowtype;beginselect*intomytab
此文档下载收益归作者所有