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

时间:2012-03-14 04:55:49

标签: oracle plsql internals sqldatatypes

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

e.g。

  

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

     

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

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

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

然后声明该类型的变量:

applicant_rec person_rectype;

变量applicant_rec包含forenamesurname的内部组件sexdobVARCHAR2DATE数据类型。

希望它有所帮助...