📅  最后修改于: 2020-11-12 01:30:35             🧑  作者: Mango
变量是一个有意义的名称,它有助于程序员在代码执行期间临时存储数据。它可以帮助您处理PL / SQL程序中的数据。除了赋予存储区的名称外,什么都没有。 PL / SQL中的每个变量都有一个特定的数据类型,该数据类型定义了变量内存的大小和布局。
变量不得超过30个字符。其字母(可选)后跟更多字母,美元符号,数字,下划线等。
1.在使用变量之前,需要先在PL / SQL块的声明部分声明该变量。
2.默认情况下,变量名称不区分大小写。保留的PL / SQL关键字不能用作变量名。
您必须在声明部分或程序包中将PL / SQL变量声明为全局变量。声明之后,PL / SQL为变量的值分配内存,并且存储位置由变量名标识。
声明变量的语法:
以下是声明变量的语法:
variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]
在这里,variable_name是PL / SQL中的有效标识符,并且数据类型必须是有效的PL / SQL数据类型。具有大小,小数位数或精度限制的数据类型称为约束声明。约束声明比无约束声明需要更少的内存。
PL / SQL中的变量必须遵循某些命名规则,例如其他编程语言。
每当您声明一个变量时,PL / SQL都会为其定义一个默认值NULL。如果要使用非NULL值以外的其他值初始化变量,则可以在声明期间使用以下任何一种方法进行初始化。
counter binary_integer := 0;
greetings varchar2(20) DEFAULT 'Hello JavaTpoint';
您还可以指定NOT NULL约束以避免NULL值。如果指定NOT NULL约束,则必须为该变量分配一个初始值。
您必须具有良好的编程技巧才能正确初始化变量,否则有时程序会产生意外的结果。
让我们举一个简单的例子来很好地解释它:
DECLARE
a integer := 30;
b integer := 40;
c integer;
f real;
BEGIN
c := a + b;
dbms_output.put_line('Value of c: ' || c);
f := 100.0/3.0;
dbms_output.put_line('Value of f: ' || f);
END;
执行后,将产生以下结果:
Value of c: 70
Value of f: 33.333333333333333333
PL/SQL procedure successfully completed.
PL / SQL允许嵌套块。一个程序块可以包含另一个内部块。如果在内部块中声明变量,那么外部块将无法访问该变量。变量作用域有两种类型:
让我们以一个简单的例子来展示Local和Global变量的用法:
DECLARE
-- Global variables
num1 number := 95;
num2 number := 85;
BEGIN
dbms_output.put_line('Outer Variable num1: ' || num1);
dbms_output.put_line('Outer Variable num2: ' || num2);
DECLARE
-- Local variables
num1 number := 195;
num2 number := 185;
BEGIN
dbms_output.put_line('Inner Variable num1: ' || num1);
dbms_output.put_line('Inner Variable num2: ' || num2);
END;
END;
/
执行后,将产生以下结果:
Outer Variable num1: 95
Outer Variable num2: 85
Inner Variable num1: 195
Inner Variable num2: 185
PL/SQL procedure successfully completed.