PL/SQL学习笔记#01 -- 变量定义

来源:互联网 发布:网络优化工程师简历 编辑:程序博客网 时间:2024/05/16 13:47
Oracle中PL/SQL这部分的学习刚刚开始。

教程中有几句话很在意:

1.变量在定义的同时也可以将其说明成常量并赋予固定的值。
2.变量的命名规则是:以字母开头,后跟其他的字符序列,字符序列中可以包含字母、数值、下划线等符号,最大长度为30个字符,不区分大小写
3.变量名不要和在程序中引用的字段名相重,如果相重,变量名会被当作列名来使用

常量的定义
变量名 CONSTANT 类型标识符 [NOT NULL][:=值|DEFAULT 值];
有意思的是,PL/SQL中变量类型的定义可以相对化,即定义成和某个表中某个字段保持一致。
变量名 [CONSTANT] 表名.字段名%TYPE [NOT NULL][:=值|DEFAULT 值];

特殊的PL/SQL变量数据类型
BINARY_INTEGER : 带正负号的整数。
LONG : 注意,是字符型。可变长字符,最大2G。

陌生的数据类型
LOB : 大对象类型,用来存储非结构化数据,长度可达4G。可以存储视频、音频或图片,支持随机访问,存储的数据可以位于数据库内或数据库外,具体有四种类型:BFILE、BLOB、CLOB、NCLOB。但是操纵大对象需要使用Oracle提供的DBMS_LOB包。

结合变量
SQL*Plus工具里面独有的一种变量,在整个SQL*Plus环境下有效,在退出SQL*Plus之前始终有效,所以可以使用该变量在不同的程序之间传递信息。 -- 简陋的工具不想用,不知道PL/SQL Developer里面有没有类似的变量。
结合变量可以在程序中引用或赋值,引用时在结合变量前面要加上“∶”(半角冒号)。 不过,这个也是只在SQL*Plus才能用吧…?

记录变量
记录变量包含若干个字段,在结构上同表的一个记录相同,定义方法是在表名后跟%ROWTYPE。记录变量的字段名就是表的字段名,数据类型也一致。
记录变量的定义方法是:
记录变量名 表名%ROWTYPE;
获得记录变量的字段的方法是:记录变量名.字段名,如emp_record.ename。

TABLE类型变量
在PL/SQL中可以定义TABLE类型的变量。 TABLE数据类型用来存储可变长度的一维数组数据,即数组中的数据动态地增长。要定义TABLE变量,需要先定义TABLE数据类型。通过使用下标来引用TABLE变量的元素。
TABLE数据类型的定义形式如下:
TYPE 类型名 IS TABLE OF 数据类型[NOT NULL] INDEX BY BINARY_INTEGER;
此数据类型自动带有BINARY_INTEGER型的索引。
P.S.: 一维数组,数组元素数据类型可以自定义,也就是说,可以定义元素类型为记录型变量来形成一个真正的表。不过这些目前只是设想,没经过证实。

对空值的算术和比较运算的结果都是空,但对空值可以进行连接运算,结果是另外一部分的字符串。

条件部分是一个逻辑表达式,值只能是真(TRUE)、假(FALSE)或空(NULL)。
-- 逻辑表达式结果为null的情况,会怎么样??


原创粉丝点击