📜  PL / SQL变量

📅  最后修改于: 2020-11-12 01:30:35             🧑  作者: Mango

PL / SQL变量

变量是一个有意义的名称,它有助于程序员在代码执行期间临时存储数据。它可以帮助您处理PL / SQL程序中的数据。除了赋予存储区的名称外,什么都没有。 PL / SQL中的每个变量都有一个特定的数据类型,该数据类型定义了变量内存的大小和布局。

变量不得超过30个字符。其字母(可选)后跟更多字母,美元符号,数字,下划线等。

1.在使用变量之前,需要先在PL / SQL块的声明部分声明该变量。
2.默认情况下,变量名称不区分大小写。保留的PL / SQL关键字不能用作变量名。

如何在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中的变量必须遵循某些命名规则,例如其他编程语言。

  • variable_name不得超过30个字符。
  • 变量名称必须以ASCII字母开头。 PL / SQL不区分大小写,因此可以是小写或大写。例如:v_data和V_DATA引用相同的变量。
  • 您应该使变量易于阅读和理解,第一个字符后可以是任何数字,下划线(_)或美元符号($)。
  • NOT NULL是变量的可选规范。

在PL / SQL中初始化变量

每当您声明一个变量时,PL / SQL都会为其定义一个默认值NULL。如果要使用非NULL值以外的其他值初始化变量,则可以在声明期间使用以下任何一种方法进行初始化。

  • DEFAULT关键字
  • 赋值运算符
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中的可变范围:

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.