《SQL 21日自学通(V3.0)(PDF格式)》第122章


…………………………………………………………Page 379……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
l 程序员可以将功能划分为不同的逻辑代码块 编程的模块化为应用程序开发环境 
提供了更大的灵活性 
l SQL 语句可以并行执行以获得最优的性能 
在 PL/SQL 中的数据类型 
大多数数据的类型是相似的 但是每一种解释器都有自己独特的存储方式和内部过程 
需要 在写 PL/SQL 的语句块时 你将会定义变量 它们必须是真实的数据类型 下边的 
小标题对 PL/SQL 中可用的变量进行了详细的介绍 
在 PL/SQL 中也提供了数据类型的子类型 例如 数据类型 NUMBER 的子类型叫 
INTEGER 你可以在 PL/SQL 程序中使用子类型来保证它与其它程序如 COBOL 中数据类 
型的一致 尤其是在其它的程序中内嵌的 PL/SQL 代码时更要如此 子类型只是 ORACLE 
中数据类型的别名 所以它必须遵循与之相关联的数据类型的规则 
注 在大多数的 SQL 解释器中语法的大小写是不敏感的 PL/SQL 同样允许在它的语句中 
使用大小写 它也是大小写不敏感的 
字符串类型 
在 PL/SQL 中的字符串类型所你所想的一样 是一种常见的数据类型定义 它允许在 
其中有字母和数字 像名字 代码 描述 序列号等都可以包括在字符串中 
CHAR 中存储着固定长度的字符串 CHAR 在最大长度为 32767 个字节 尽管很难想 
象在哪一个表中的字符串会有这么长 
语法 
CHAR ( max_length ) 
子类型 CHARACTER 
VARCHAR2 则存储着长度可变的字符串 你会经常用 VARCHAR2 来存储长度可变的 
字符串 比如某人的名字 VARCHAR2 所允许的最大长度为 32767 个字节 
语法 
VARCHAR2 ( max_length ) 
子类型 VARCHAR; STRING 
379 
…………………………………………………………Page 380……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
LONG 也可以存储变长的字符串 它的最大长度为 32760 个字节 LONG 是典型的用 
以存储长文本如备注 尽管 VARCHAR2 也能做同样的工作 
数值数据类型 
NUMBER 用以存储在 ORACLE 数据库中的任何类型的数值 
语法 
NUMBER ( max_length ) 
你也可以使用下边的语法来指定数据类型的精度 
NUMBER (precision; scale) 
子类型 DEC DECIMAL DOUBLE PRECISION INTEGER INT NUMERIC REAL; 
SMALLINT FLOAT 
PLS_INTEGER 定义的整数是可以带有符号的 例如 负数 
二进制数据类型 
二进制数据类型可以以二进制形式来存储数据 如图形或图像 这种数据类型包括 RAW 
和 LONGRAW 
日期数据类型 
DATE 是在 ORACLE 中可以有效存储的数据类型 如果你将某一列定义为 DATE 类型 
你就不能指定它的长度 DATE 数据类型的长度是默认的 ORACLE 数据类型是像 01
OCT…97 这样的 
逻辑数据类型 
逻辑数据类型可以存储下列数值 TRUE FALSE 和 NULL 与 DATE 相类似 BOOLEAN 
在作为列或变量的类型在定义时也不需要参数 
380 
…………………………………………………………Page 381……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
ROWID 
ROWID 是存在于 ORACLE 数据库的每一个表中的预定义列 ROWID 以二进制格式 
存储和确定表中的每一列 索引就是使用 ROWID 指向数据的 
PL/SQL 块的结构 
PL/SQL 是一种块结构语言 也就是说 PL/SQL 的程序可以分成逻辑块来写 在一个块 
的内部可以有像数据操作或查询之类的过程 下边将会对 PL/SQL 的块进行详细的讨论 
l 在 DECLARE 部分包括了定义的变量和其它的对象 如常量和指针 这一部分在 
PL/SQL 块中是可以选择的 
l PROCDURE 部分包括条件语句和 SQL 语句 块可以对它进行控制 它是 PL/SQL 
的必须部分 
l EXCEPTION 告诉了 PL/SQL 如何处理指定的错误并按用户的定义进行处理 它 
也是 PL/SQL 的可选择部分 
注 块是 PL/SQL 代码的逻辑单元 包括至少一个 PROCDURE 部分和可以选择的 
DECLARE 以及EXCEPTION 部分 
这里是 PL/SQL 块的基本结构 
SYNTAX: 
BEGIN … optional; denotes beginning of block 
DECLARE … optional; variable definitions 
BEGIN … mandatory; denotes beginning of procedure section 
EXCEPTION … optional; denotes beginning of exception section 
END … mandatory; denotes ending of procedure section 
END … optional; denotes ending of block 
请注意必要部分在第二个 BEGIN — — END 对中的 它构成了一个过程部分 当然 
在它们中间是有语句的 如果你使用了第一个 BEGIN 那么你必须同时使用第二个 BEGIN 
反之亦然 
381 
…………………………………………………………Page 382……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
注释 
如果一个程序没有注释会怎样 编程语言提供了命令使你可以在你的代码中放放注 
释 PL/SQL 当然不例外 你可以在需要注释的行前加一短线 公认的 PL/SQL 注释形式如 
下 多行注释则与 C 语言的注释方法相同 
语法 
…This is a one…line ment。 
/* This is a 
multiple…line ment。*/ 
注 PL/SQL 可以直接支持数据操作言语 DML 命令和数据查询 然而 它不支持数据 
字典语言 DDL 命令 你通常会使用 PL/SQL 维护在数据库结构中的数据 但是并 
不能维护这些结构 
DECLARE 部分 
在 PL/SQL 的 DECLARE 部分包括了变量 常量 指针和特殊数据类型的定义 作为 
一个 PL/SQL 程序员 你可以在你的代码块中定义所有类型的变量 但是你必须要指定数 
据类型 而且每一个变量都必须与 ORACLE 中所定义的数据类型一致 变量也要符合 
ORACLE 的对象命名标准 
变量声明 
在 PL/SQL 语句块中变量的数据是可变以 在变量声明时必须对它加以定义 如有必 
须 还要进行初始化工作
小说推荐
返回首页返回目录