PL/SQL oracle 中的标量变量和复合变量

Posted

技术标签:

【中文标题】PL/SQL oracle 中的标量变量和复合变量【英文标题】:scalar variable and composite variable in PL/SQL oracle 【发布时间】:2012-03-30 13:40:03 【问题描述】:

我是 Oracle 新手,刚刚读到标量变量没有内部组件,而复合变量有内部组件。

您能解释一下这个内部组件是什么吗? 它是如何工作的?它的目的是什么?

【问题讨论】:

【参考方案1】:

您需要阅读有关 PL/SQL 记录和集合的文档:

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm

复合变量的内部组件只是构成变量本身的结构。

例如

在一个集合中,内部组件总是有相同的数据 类型,称为元素。您可以访问 a 的每个元素 集合变量的唯一索引,语法如下: 变量名(索引)。要创建集合变量,您可以 定义一个集合类型,然后创建该类型的变量或 使用 %TYPE。

在一条记录中,内部组件可以有不同的数据类型, 并且被称为字段。您可以访问记录变量的每个字段 按其名称,使用以下语法:variable_name.field_name。创建一个 记录变量,您可以定义一个记录类型,然后创建一个 该类型的变量或使用 %ROWTYPE 或 %TYPE。

例如,如果我创建一个记录类型:

TYPE person_rectype IS RECORD (
     forename VARCHAR2(30),
     surname  VARCHAR2(30),
     sex      VARCHAR2(1),
     dob      DATE
);

然后声明该类型的变量:

applicant_rec person_rectype;

变量applicant_rec 具有内部组件forenamesurnamesexdob,它们是VARCHAR2DATE 数据类型。

希望对你有帮助...

【讨论】:

以上是关于PL/SQL oracle 中的标量变量和复合变量的主要内容,如果未能解决你的问题,请参考以下文章

oracle变量的定义和使用

Oracle PL/SQL编程之变量

Oracle PL/SQL 第五章–复合类型

Oracle_PL/SQL 游标

PL/SQL练习复合变量: 可以一次传递多个值到变量中。

Oracle_PL/SQL 集合