PL/SQL 变量2024 年 8 月 29 日 | 阅读 6 分钟 变量是一个有意义的名称,方便程序员在代码执行期间临时存储数据。它可以帮助您在 PL/SQL 程序中操作数据。它只不过是分配给存储区域的名称。PL/SQL 中的每个变量都有一个特定的数据类型,该数据类型定义了变量内存的大小和布局。 变量长度不应超过 30 个字符。它的字母可以选择后跟更多字母、美元符号、数字、下划线等。 1. 在使用变量之前,需要在 PL/SQL 块的声明部分首先声明该变量。2. 默认情况下,变量名不区分大小写。保留的 PL/SQL 关键字不能用作变量名。如何在 PL/SQL 中声明变量您必须在声明部分或在包中声明 PL/SQL 变量作为全局变量。声明后,PL/SQL 会为变量的值分配内存,并且存储位置由变量名标识。 声明变量的语法 以下是声明变量的语法 此处,variable_name 是 PL/SQL 中的有效标识符,datatype 必须是有效的 PL/SQL 数据类型。具有大小、比例或精度限制的数据类型称为约束声明。约束声明比非约束声明需要的内存更少。 示例 Radius Number := 5; Date_of_birth date; 声明限制在 PL/SQL 中声明变量时,有一些限制。
PL/SQL 变量的命名规则PL/SQL 中的变量必须遵循一些命名规则,就像其他编程语言一样。
在 PL/SQL 中初始化变量每次声明变量时,PL/SQL 都会为其定义一个默认值 NULL。 如果您想使用 NULL 值以外的其他值初始化变量,您可以在声明期间通过使用以下方法之一来完成。
您还可以指定 NOT NULL 约束以避免 NULL 值。 如果您指定了 NOT NULL 约束,则必须为该变量分配初始值。 您必须具备良好的编程技巧才能正确初始化变量,否则,有时程序会产生意外结果。 初始化变量的示例让我们举一个简单的例子来更好地解释它 执行后,这将产生以下结果 Value of c: 70 Value of f: 33.333333333333333333 PL/SQL procedure successfully completed. PL/SQL 中的变量作用域PL/SQL 允许嵌套块。 一个程序块可以包含另一个内部块。 如果您在内部块中声明一个变量,则外部块无法访问它。 有两种类型的变量作用域
局部变量和全局变量的示例让我们举一个例子来展示局部变量和全局变量的简单用法 执行后,这将产生以下结果 Outer Variable num1: 95 Outer Variable num2: 85 Inner Variable num1: 195 Inner Variable num2: 185 PL/SQL procedure successfully completed. 变量属性当您声明一个 PL/SQL 变量来保存列值时,它必须具有正确的数据类型和精度,否则执行时会发生错误。 PL/SQL 提供了一种无需使用 %TYPE 和 %ROWTYPE 属性指定特定数据类型即可声明变量的功能,而不是硬编码变量的数据类型和精度。 这两个属性允许我们指定一个变量,并让该变量的数据类型由表/视图列或 PL/SQL 包变量定义。 % 符号用作属性指示符。 这种声明变量的方法具有一个优势,因为用户不必担心编写和维护代码。 以下是 PL/SQL 中变量属性的类型。
%TYPE 属性用于根据已声明的变量或数据库列声明变量。 它用于声明单个变量,而不是记录。 使用 %TYPE 属性声明的变量的数据类型和精度与从给定表中引用的列的数据类型和精度相同。 当声明将保存数据库值的变量时,这特别有用。 使用 %TYPE 关键字时,用户必须知道列的名称和变量将对应的表。 然后,这些将以变量名称为前缀。 如果引用了先前声明的变量,则将该变量名称作为 %TYPE 属性的前缀。 使用 %TYPE 声明变量的语法是 其中 <column_name> 是在 <tab_name> 中定义的列。 考虑一个声明。 SALARY EMP.SAL % TYPE; 此声明将声明一个变量 SALARY,该变量具有与 EMP 表的 SAL 列相同的数据类型。 示例 执行后,这将产生以下结果 Enter value for ecode: 7499 Salary of 7499 is = 1600 PL/SQL procedure successfully completed.
%ROWTYPE 属性用于声明表示表中一行的记录类型。 该记录可以存储整行或从表中选择的某些特定数据。 行中的列和记录中的相应字段具有相同的名称和数据类型。 使用 %ROWTYPE 声明变量的语法是 其中 <variable_name> 是在 <tab_name> 中定义的变量。 考虑一个声明。 EMPLOYEE EMP. % ROW TYPE; 此声明将声明一个名为 EMPLOYEE 的记录,该记录具有与 EMP 表中的列具有相同名称和数据类型的字段。 您可以按如下方式访问 EMPLOYEE 记录的元素 EMPLOYEE.SAL := 10000; EMPLOYEE.ENAME := ‘KIRAN’; 示例 执行后,这将产生以下结果 Row Inserted PL/SQL procedure successfully completed. 优点
下一个主题PL/SQL 常量 |
我们请求您订阅我们的新闻通讯以获取最新更新。