1. 变量的定义格式与规则

在PL/SQL中,变量的定义有两种主要格式:

  • 格式1: 变量名 类型 [约束] [DEFAULT默认值]
  • 格式2: 变量名 类型 [约束] [:= 初始值]

其中,约束是可选项,用于规定变量必须满足的条件,例如:

  • NOT NULL 约束,指定变量不能为 NULL,这样在定义变量时就需要为其指定初始值或默认值。

命名规则

  • 变量名必须以字母开头,可以包含字母、数字、下划线 _ 以及 $# 符号。
  • 变量名长度不能超过30个字符,并且不能与Oracle关键字相同。
  • 变量名对大小写不敏感,即 nameNAME 视为相同的变量。

举例:

DECLARE
  emp_id NUMBER(5) NOT NULL DEFAULT 1000; -- 定义一个员工ID变量,类型为数字,不允许为空,默认值为1000
  emp_name VARCHAR2(50) := 'John Doe';    -- 定义一个员工姓名变量,类型为字符串,初始值为'John Doe'
BEGIN
  DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp_id);    -- 输出员工ID
  DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_name); -- 输出员工姓名
END;
/

运行该代码块,输出结果为:

Employee ID: 1000
Employee Name: John Doe

2. PL/SQL中的基本数据类型

PL/SQL提供了多种数据类型,几种常见的基本数据类型,包括:

  • binary_integer: 表示整数类型的数据。
  • number: 可表示整数和浮点数,允许指定精度和小数位数。
  • char: 表示定长字符串,最大长度可达32767字节。
  • varchar2: 表示变长字符串,最大长度由定义时指定。
  • date: 表示日期类型的数据。
  • boolean: 表示布尔类型的数据,取值为 TRUEFALSE

举例:

DECLARE
  emp_salary NUMBER(7, 2);  -- 定义一个带有7位精度和2位小数的薪资变量
  emp_name CHAR(20);        -- 定义一个固定长度为20的字符变量
  emp_birthday DATE;        -- 定义一个日期类型的变量
  is_manager BOOLEAN;       -- 定义一个布尔变量,表示是否为经理
BEGIN
  emp_salary := 55000.75;     -- 为变量赋值
  emp_name := 'Jane Smith';   -- 为变量赋值
  emp_birthday := '01-JAN-1990'; -- 为变量赋值
  is_manager := TRUE;         -- 为布尔变量赋值

  DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_salary);
  DBMS_OUTPUT.PUT_LINE('Name: ' || emp_name);
  DBMS_OUTPUT.PUT_LINE('Birthday: ' || TO_CHAR(emp_birthday, 'DD-MON-YYYY'));
  DBMS_OUTPUT.PUT_LINE('Is Manager: ' || is_manager);
END;
/
Salary: 55000.75
Name: Jane Smith
Birthday: 01-JAN-1990
Is Manager: TRUE

3. 变量的赋值与输出

在PL/SQL中,变量在定义时可以指定默认值或初始值。在PL/SQL块的执行过程中,变量可以通过赋值语句或表达式进行赋值。要输出变量的值,可以使用 DBMS_OUTPUT.PUT_LINE 过程包中的 PUT_LINE 过程,其参数是需要输出的变量或表达式。

举例:

以下语句演示了变量的声明、赋值和输出操作:

SET SERVEROUTPUT ON;

DECLARE
  id INTEGER NOT NULL DEFAULT 100;
  name VARCHAR2(20) := 'SMITH';
  birthday DATE DEFAULT SYSDATE;
BEGIN
  id := 200;
  dbms_output.put_line('id的值为: ' || id);
  dbms_output.put_line('name的值为: ' || name);
  dbms_output.put_line('birthday的值为: ' || birthday);
END;
/
id的值为: 200
name的值为: SMITH
birthday的值为: [当前系统日期]

4. 使用%TYPE属性指定变量类型

在PL/SQL中,可以通过 %TYPE 属性来指定变量类型,%TYPE 属性用于获得另一个变量或者表中某个列的类型,使得新定义的变量与该变量或该列的类型完全一致。使用 %TYPE 的好处是,当原来的变量或列的类型被修改后,不需要修改新变量的类型定义。

举例:

DECLARE
  id INTEGER DEFAULT 100;
  no id%TYPE;              -- 使用%TYPE属性定义变量no,使其类型与id变量的类型相同
  name emp.ename%TYPE;     -- 使用%TYPE属性定义变量name,使其类型与emp表中的ename列类型一致
BEGIN
  no := 500;
  name := 'ADAMS';
  
  DBMS_OUTPUT.PUT_LINE('No: ' || no);
  DBMS_OUTPUT.PUT_LINE('Name: ' || name);
END;
/
No: 500
Name: ADAMS

通过以上举例,可以理解PL/SQL中变量的定义、赋值与使用,以及如何利用 %TYPE 属性灵活地管理变量类型。

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。


无论你是AI新手还是AI专家,学习最前沿的AI技术,AI创富俱乐部你值得拥有!

本文由mdnice多平台发布


逼格高的汤圆
10 声望2 粉丝