变量
标识符定义
PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有:
(1)不能超过30个字符。
(2)首字符必须为字母。
(3)不区分大小写。
(4)不能使用SQL保留字。
(5)对标识符的命名最好遵循实际项目中相关命名规范
声明语法
- PL/SQL中出现的变量在DECLARE部分定义,
- 语法如下:变量名[CONSTANT] 数据类型[NOT NULL][ := | DEFAULT PL/SQL表达式]
- 常量:[CONSTANT]必须初始化
数据类型
在 PL/SQL 出现的所有变量和常量都需要指定一个数据类型。下面介绍一些常用的数据类型,有标量类型、参考类型、 LOB 类型和用户自定义 类型
标量类型
①数值型
NUMBER [(precision, scale)]:可存储整数或实数值
②字符型
CHAR[(maximum_length)] :描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。在PL/SQL中最大长度的是32767,长度缺省值为1。
③日期型
常用的日期类型为DATE。日期默认格式为DD-MON-YY,分别对应日、月、年。
④布尔型
存储逻辑值TRUE或FALSE
(2)参考类型
参考类型分为两种,%TYPE和%ROWTYPE。
①%TYPE类型
定义一个变量,其数据类型可以与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE。
②%ROWTYPE类型
定义一个变量的类型参照自基本表或视图中记录的类型、或游标的结构类型,这时可以使用%ROWTYPE
语法变量赋值
常量
在
PL/SQL
程序中可以通过两种方式给变量赋值
。
(1)直接赋值
变量名 := 常量或表达式 ;例如: v_num NUMBER:=3;
(2)通过SELECT..INTO赋值
SELECT 字段 INTO 变量名例如: SELECTsname,age INTO v_sname, v_age FROM studentWHERE sno=‘20120001’;
任务3
-编写一个PL/SQL程序,输出学号为20120006的学生姓名和出生年份。
DECLARE v_sname student.sname%TYPE; v_birth NUMBER; BEGIN SELECT sname,2012-age into v_sname,v_birth FROM student WHERE sno='20120006'; DBMS_OUTPUT.PUT_LINE('学号为2012006的姓名:'||v_sname||' 出生年月:'||v_birth); END;