PL/SQL变量和变量值

目录

变量命名

变量声明

可变锚点

变量赋值

NULL值

常量约束

默认值约束

NOT NULL约束


变量命名

PL/SQL变量必须遵循标识符命名规则:

  • 变量名称的长度必须小于44个字符。
  • 变量名称必须以大写或小写ASCII字母开头:A~Z或a~z。
  • PL/SQL 变量不区分大小写。
  • 变量名称可以由字母,数字或下划线(_)字符组成。
  • 还可以使用#$字符。

命名变量时,我们可以使用以下约定: 

前缀数据类型
c_CURSOR
d_DATE
n_NUMBER
r_ROW
t_TABLE
v_VARCHAR2

变量声明

1、语法:

        用于声明变量的语法如下:

<variable_name> <data_type>;

        其中<variable_name>是变量的名称,<data_type>是PL/SQL数据类型。

2、实例

declare
     n_id number;
     v_name varchar2(100);
     d_birth_date date;
     v_gender varchar2(30);
begin
     null;
end;

可变锚点

        锚指向使用关键字%TYPE将PL/SQL数据类型定义“锚定”到相应的SQL数据类型定义。语法如下:

<variable_name> <table_name>.<column_name>%TYPE;

        其中<variable_name>是变量名称,<table_name>是用于锚定数据类型的表的名称,<column_name>是用于锚定数据类型的列的名称。

n_id         AUTHORS.id%TYPE;
v_name       AUTHORS.name%TYPE;
d_birth_date AUTHORS.birth_date%TYPE;
v_gender     AUTHORS.gender%TYPE;

变量赋值

        为变量赋值的方式主要有下面三种方式:

1、使用赋值运算符

        要为PL/SQL中的变量分配文本值,请使用赋值运算符(:=

-- 使用字面量为变量赋值
n_id := 40;
v_name := 'STEVEN FEUERSTEIN';
d_birth_date := to_date('20000101', 'YYYYMMDD');
v_gender := 'M';

2、使用INTO子句

        通过在SELECT语句中使用INTO子句为变量赋值。

SELECT id, name, birth_date, gender
INTO
n_id, v_name, d_birth_date, v_gender
FROM AUTHORS
WHERE AUTHORS.id = 10;

3、声明变量并初始化值

        默认情况下,变量未初始化,因此值为NULL。我们可以在声明部分中为其初始化一个值。

declare
    n_id AUTHORS.id%TYPE := 10;
    v_name AUTHORS.name%TYPE := 'Tom';
    d_birth_date AUTHORS.birth_date%TYPE := to_date('20000101', 'YYYYMMDD');
    v_gender AUTHORS.gender%TYPE := NULL;
begin
    null;
end;

NULL值

        关键字NULL表示未知的值。NULL不等于任何东西,甚至不等于NULL。我们可以通过下面的方式来判断一个变量的值是否为NULL。

IS NULL(不能用 = NULL)

IS NOT NULL(不能用 <> NULL)

常量约束

        要声明常量,请在数据类型之前添加关键字CONSTANT。常量必须在其声明中初始化。每次输入块或子程序时,都会初始化常量。

-- 以下代码显示如何定义常量,并为常量指定一个不可更改的值
DECLARE
  n_real     CONSTANT REAL    := 5.00;
  n_value    CONSTANT INTEGER := 3;
  n_boolean  CONSTANT BOOLEAN := FALSE;
BEGIN
  NULL;
END;
/

默认值约束

        我们可以使用关键字DEFAULT而不是赋值运算符来初始化变量。可以使用DEFAULT在用户定义的记录中初始化子程序参数,光标参数和字段。

-- 对具有典型值的变量使用DEFAULT。对没有典型值的变量使用赋值运算符。
DECLARE
  n_char       CHAR DEFAULT 'O';    -- Same as n_char CHAR := 'O';
  n_length     INTEGER DEFAULT 40;  -- Typical value
  n_count      INTEGER := 0;        -- No typical value
BEGIN
  NULL;
END;
/

NOT NULL约束

        声明变量时可以指定NOT NULL约束。NOT NULL防止您为该变量分配一个空值。指定NOT NULL的声明必须指定默认值。

DECLARE
  i_id INTEGER(4) NOT NULL := 9999;
BEGIN
  NULL;
END;
/
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值