PL/SQL(二):变量

变量

标识符定义

PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有: 

1)不能超过30个字符。

2)首字符必须为字母。

3)不区分大小写。

4)不能使用SQL保留字。

5)对标识符的命名最好遵循实际项目中相关命名规范


声明语法

  1. PL/SQL中出现的变量在DECLARE部分定义,
  2. 语法如下:变量名[CONSTANT] 数据类型[NOT NULL][ := | DEFAULT  PL/SQL表达式]
  3. 常量:[CONSTANT]必须初始化

数据类型

PL/SQL 出现的所有变量和常量都需要指定一个数据类型。下面介绍一些常用的数据类型,有标量类型、参考类型、 LOB 类型和用户自定义 类型

标量类型

数值型

  NUMBER [(precision, scale)]:可存储整数或实数值

字符型

CHAR[(maximum_length)] :描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。在PL/SQL中最大长度的是32767,长度缺省值为1

③日期型

常用的日期类型为DATE。日期默认格式为DD-MON-YY,分别对应日、月、年

布尔型

存储逻辑值TRUEFALSE


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   student

        WHERE 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;



原文地址:https://www.cnblogs.com/riasky/p/3455554.html