Oracle高级数据库开发设计-4_Oracle_高级编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*/ [EXCEPTION] /* 执行异常部分:错误处理 */ END; PL/SQL语句块中执行部分与结束部分是必须的,而声明部分和异常
部分是可选的。
8
11.2.1 块
2.块的嵌套结构
PL/SQL块可以嵌套使用,对块的嵌套层数没有限制。语法:
[DECLARE]
......
/*声明部分*/
15
11.2.3 数据类型
(3)日期时间型 与SQL相同,也包括DATE类型、TIMESTAMP类型和
INTERVAL类型。 (4)布尔型(BOOLEAN) 布尔类型的变量只能用在逻辑操作中,且只能将
TRUE、FALSE或NULL赋给该类型的变量。不能将布 尔类型的值插入到数据库中,也不能将数据库中 的数据赋给布尔类型的变量。
16
11.2.3 数据类型
2.参考类型 当将数据库列的值放到一个变量中时,必须保证变量的数
据类型与列的数据类型完全一致,否则在执行时会发生一 个PL/SQL错误,而此时如果不知道该列具体的数据类型时 可以使用参考类型,即使用已经定义好的变量的类型或列 的类型来定义变量的类型。 (1)%TYPE 定义一个变量,其数据类型可以与已经定义的某个数据变 量的类型相同,或者与数据库表的某个列的数据类型相同 ,这时可以使用%TYPE来定义。
(1)字符型 PL/SQL中的字符类型与Oracle数据库中的字符 类型类似,但是允许字符串的长度有所不同, 具体如下表所示:
13
类型 VARCHAR2 NVARCHAR2
CHAR NCHAR LONG
PL/SQL中最大字节数 SQL中最大字节数
32767
4000
32767 32767 32767
4
11.1.2 SQL与PL/SQL
SQL是一种标准的结构化语言,本身不支持对 结果的进一步处理。
PL/SQL融合了SQL语言的灵活性和过程化的概 念,因此非常适合处理此类问题。
5百度文库
11.1.3 PL/SQL的运行
PL/SQL程序是通过一个引擎执行的,这个引擎 安装在Oracle数据库服务器或一些客户端的应 用开发工具中。PL/SQL程序可以在下面两个环 境下运行:
4000 2000 2000
32760
2GB
14
11.2.3 数据类型
(2)数值型 除了SQL的数值类型外,还包括BINARY_INTEGER和
PLS_INTEGER。 ① BINARY_INTEGER类型用于表示存储带符号的整数
,其大小范围为-231-1~231-1,以二进制形式存 储,当发生溢出时,将自动转换为NUMBER类型。 ② PLS_INTEGER类型表示范围与BINARY_INTEGER相同 ,但是发生溢出时会发生错误,其子类型包括 NATURAL、POSITIVE等,Oracle数据库推荐使用 PLS_INTEGER类型。
17
11.2.3 数据类型
(2)%ROWTYPE 当参考的不是一个单独的变量类型或者单独的列类型,而
是多列组合到一起的复合类型时,可以使用记录类型。记 录类型类似于C语言中的结构体,是一个包含若干个成员变 量的复合类型。在使用记录类型时,需要先在声明部分定 义记录类型和记录类型变量,然后在执行部分引用该记录 类型变量或其成员变量。
• Oracle服务器 • Oracle的一些应用开发工具
6
11.2 PL/SQL的组成元素
11.2.1 块 11.2.2 标识符 11.2.3 数据类型 11.2.4 变量 11.2.5 赋值语句
7
11.2.1 块
1.块的基本结构 一个完整的PL/SQL语句块由以下三个部分组成: [DECLARE] /* 声明部分:在此声明PL/SQL用到的变量、类型及游标等 */ BEGIN /* 执行部分:过程及SQL 语句,即程序的主要部分,实现块的功能
符($、#、_)组成。 标识符长度不超过30个字符。 标识符内不能有空格。
11
11.2.2 标识符
PL/SQL不区分大小写,如果希望 标识符区分大小写或包含其他的 字符,则可以使用带双引号的标 识符,但是标识符的最大长度不 能是30个字符(不包括双引号)
12
11.2.3 数据类型
PL/SQL变量数据类型有标量类型、参考类型、 LOB类型、用户自定义类型,由于PL/SQL是在 SQL的基础上扩展的,因此很多数据类型与SQL 是相同的。
11.1.1 什么是PL/SQL 11.1.2 SQL与PL/SQL 11.1.3 PL/SQL的运行
3
11.1.1 什么是PL/SQL
Oracle数据库对标准的SQL语言进行了扩展, 将SQL语言的非过程化与高级程序开发语言过 程化的思想相结合,产生了PL/SQL语言.
目前的PL/SQL包括两部分:一部分是数据库引 擎部分;另一部分是可嵌入到许多产品(如C 、Java等)工具中的独立引擎,可以将这两部 分称为数据库PL/SQL和工具PL/SQL,两者的编 程非常相似,都具有程序结构、语法和逻辑机 制。
递给PL/SQL引擎处理,只能执行一次,不能被存 储在数据库中。上面的几个例子使用的都是匿名 块。 命名块:是指编译一次之后可以多次执行的 PL/SQL块,其中又包括存储过程、存储函数、包 、触发器等。
10
11.2.2 标识符
标识符的书写规则如下: 标识符必须以字母开头。 标识符可以由一个或多个字母、数字或特殊字
BEGIN
......
/*主块的语句执行部分*/
BEGIN
......
/*子块的语句执行部分*/
[EXCEPTION]
......
/*子块的出错处理程序*/
END;
[EXCEPTION] /*主块的出错处理程序*/
END;
9
11.2.1 块
3.块的分类 匿名块:一般在要运行的应用中说明,运行时传
Oracle高级数据库开发设计
SQL/Plus高级编程
软件工程系 主讲:刘征海
1
本章内容
11.1 PL/SQL概述。 11.2 PL/SQL的组成元素。 11.3 控制结构。 11.4 游标 12.1 存储子程序。 12.2 包。 12.3 触发器。
2
11.1 PL/SQL概述
部分是可选的。
8
11.2.1 块
2.块的嵌套结构
PL/SQL块可以嵌套使用,对块的嵌套层数没有限制。语法:
[DECLARE]
......
/*声明部分*/
15
11.2.3 数据类型
(3)日期时间型 与SQL相同,也包括DATE类型、TIMESTAMP类型和
INTERVAL类型。 (4)布尔型(BOOLEAN) 布尔类型的变量只能用在逻辑操作中,且只能将
TRUE、FALSE或NULL赋给该类型的变量。不能将布 尔类型的值插入到数据库中,也不能将数据库中 的数据赋给布尔类型的变量。
16
11.2.3 数据类型
2.参考类型 当将数据库列的值放到一个变量中时,必须保证变量的数
据类型与列的数据类型完全一致,否则在执行时会发生一 个PL/SQL错误,而此时如果不知道该列具体的数据类型时 可以使用参考类型,即使用已经定义好的变量的类型或列 的类型来定义变量的类型。 (1)%TYPE 定义一个变量,其数据类型可以与已经定义的某个数据变 量的类型相同,或者与数据库表的某个列的数据类型相同 ,这时可以使用%TYPE来定义。
(1)字符型 PL/SQL中的字符类型与Oracle数据库中的字符 类型类似,但是允许字符串的长度有所不同, 具体如下表所示:
13
类型 VARCHAR2 NVARCHAR2
CHAR NCHAR LONG
PL/SQL中最大字节数 SQL中最大字节数
32767
4000
32767 32767 32767
4
11.1.2 SQL与PL/SQL
SQL是一种标准的结构化语言,本身不支持对 结果的进一步处理。
PL/SQL融合了SQL语言的灵活性和过程化的概 念,因此非常适合处理此类问题。
5百度文库
11.1.3 PL/SQL的运行
PL/SQL程序是通过一个引擎执行的,这个引擎 安装在Oracle数据库服务器或一些客户端的应 用开发工具中。PL/SQL程序可以在下面两个环 境下运行:
4000 2000 2000
32760
2GB
14
11.2.3 数据类型
(2)数值型 除了SQL的数值类型外,还包括BINARY_INTEGER和
PLS_INTEGER。 ① BINARY_INTEGER类型用于表示存储带符号的整数
,其大小范围为-231-1~231-1,以二进制形式存 储,当发生溢出时,将自动转换为NUMBER类型。 ② PLS_INTEGER类型表示范围与BINARY_INTEGER相同 ,但是发生溢出时会发生错误,其子类型包括 NATURAL、POSITIVE等,Oracle数据库推荐使用 PLS_INTEGER类型。
17
11.2.3 数据类型
(2)%ROWTYPE 当参考的不是一个单独的变量类型或者单独的列类型,而
是多列组合到一起的复合类型时,可以使用记录类型。记 录类型类似于C语言中的结构体,是一个包含若干个成员变 量的复合类型。在使用记录类型时,需要先在声明部分定 义记录类型和记录类型变量,然后在执行部分引用该记录 类型变量或其成员变量。
• Oracle服务器 • Oracle的一些应用开发工具
6
11.2 PL/SQL的组成元素
11.2.1 块 11.2.2 标识符 11.2.3 数据类型 11.2.4 变量 11.2.5 赋值语句
7
11.2.1 块
1.块的基本结构 一个完整的PL/SQL语句块由以下三个部分组成: [DECLARE] /* 声明部分:在此声明PL/SQL用到的变量、类型及游标等 */ BEGIN /* 执行部分:过程及SQL 语句,即程序的主要部分,实现块的功能
符($、#、_)组成。 标识符长度不超过30个字符。 标识符内不能有空格。
11
11.2.2 标识符
PL/SQL不区分大小写,如果希望 标识符区分大小写或包含其他的 字符,则可以使用带双引号的标 识符,但是标识符的最大长度不 能是30个字符(不包括双引号)
12
11.2.3 数据类型
PL/SQL变量数据类型有标量类型、参考类型、 LOB类型、用户自定义类型,由于PL/SQL是在 SQL的基础上扩展的,因此很多数据类型与SQL 是相同的。
11.1.1 什么是PL/SQL 11.1.2 SQL与PL/SQL 11.1.3 PL/SQL的运行
3
11.1.1 什么是PL/SQL
Oracle数据库对标准的SQL语言进行了扩展, 将SQL语言的非过程化与高级程序开发语言过 程化的思想相结合,产生了PL/SQL语言.
目前的PL/SQL包括两部分:一部分是数据库引 擎部分;另一部分是可嵌入到许多产品(如C 、Java等)工具中的独立引擎,可以将这两部 分称为数据库PL/SQL和工具PL/SQL,两者的编 程非常相似,都具有程序结构、语法和逻辑机 制。
递给PL/SQL引擎处理,只能执行一次,不能被存 储在数据库中。上面的几个例子使用的都是匿名 块。 命名块:是指编译一次之后可以多次执行的 PL/SQL块,其中又包括存储过程、存储函数、包 、触发器等。
10
11.2.2 标识符
标识符的书写规则如下: 标识符必须以字母开头。 标识符可以由一个或多个字母、数字或特殊字
BEGIN
......
/*主块的语句执行部分*/
BEGIN
......
/*子块的语句执行部分*/
[EXCEPTION]
......
/*子块的出错处理程序*/
END;
[EXCEPTION] /*主块的出错处理程序*/
END;
9
11.2.1 块
3.块的分类 匿名块:一般在要运行的应用中说明,运行时传
Oracle高级数据库开发设计
SQL/Plus高级编程
软件工程系 主讲:刘征海
1
本章内容
11.1 PL/SQL概述。 11.2 PL/SQL的组成元素。 11.3 控制结构。 11.4 游标 12.1 存储子程序。 12.2 包。 12.3 触发器。
2
11.1 PL/SQL概述