PL/SQL 变量

32 篇文章 1 订阅
15 篇文章 1 订阅

变量的概念在PL/SQL中和其他语言里的概念一致。
变量声明的语法结构为:

variable_name datatype [:= initialized_value];

变量名和变量的数据类型是必须的,在声明时就初始化则是可选的,对变量的初始化赋值,也可以留到块的执行区域离进行。

#规则
PL/SQL的变量名有以下特点:

  1. 最大的长度为30个字符
  2. 首字符必须是字母,非首字符除了是字母以外,也可以是阿拉伯数字“0-9”,“$”,“_”,“#"。
  3. 不区分大小写
  4. 通过使用双引号“”包围变量名,可以绕过上述2和3的限制,可以使用除了双引号本身外的任何可打印字符,区分大小写,字符串的原始结构将会被保留

变量命名的上述特点对数据库的其他标识符(表名,视图名,过程名,函数名等)也同样使用。

#命名约定
每个组织单位都可能有自己的命名约定,在定义PL/SQL变量时,需要尽可能符合所在组织单位对命名规则的要求,以保证项目中标识符命名的一致性,提供代码的可读性,维护性和质量。

一些命名可选的方案:

前缀意义
l_声明在块结构中的局部变量
g_声明在包中的全局变量
v_VARCHAR2数据类型
n_NUMBER数据类型
t_TABLE数据类型
r_RECORD数据类型
d_DATA数据类型
b_BOOLEAN数据类型

#变量与SQL
变量可直接与SQL结合使用,用于把SQL查询的结果赋值给变量以及在SQL中读取变量的值。

DECLARE
  l_name  employees.last_name%TYPE;
BEGIN
  SELECT last_name
    INTO l_name
    FROM employees
   WHERE employee_id = 138;

  DBMS_OUTPUT.put_line (l_name);
END; 

将SQL查询的结果赋值给变量。

DECLARE
  l_dept_id  
  employees.department_id%TYPE := 10;
BEGIN
  DELETE FROM employees
       WHERE department_id = l_dept_id;

  DBMS_OUTPUT.put_line (SQL%ROWCOUNT);
END;

在SQL的WHERE子句中使用变量,读取变量的值构造条件。

#变量锚
变量锚(achor)是一种引用到数据库对象(表,视图…)的某个列的变量声明方式。其把相关列声明的数据类型自动映射到PL/SQL中的变量类型声明中,保持了PL/SQL和数据库中类型的同步。
语法为在数据库对象的列后面加上%TYPE

variable  DB_OBJECT.COLUMN%TYPE;

#常量
与变量的概念相对,有常量的概念,通过使用关键字CONSTANT声明常量

my_constant CONSTANT VARCHAR2(100) := 'HELLO';

常量在声明时必须初始化。

#NULL值
NULL值在PL/SQL中有以下特此:
- NULL与任何值都不相等,包括NULL本身

  • NULL不大于也不小于任何值,包括NULL本身
  • NULL值不能和逻辑操作符(=, <>)一起使用,要测试是否为NULL,需要用SQL IS NULL或者IS NOT NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值