zoukankan      html  css  js  c++  java
  • PL/SQL 学习笔记 二

    复合变量

    指用于存放多个值的变量。当定义复合变量时,必须要使用PL/SQL的复合数据类型。PL/SQL包括PL/SQL记录、PL/SQL表、嵌套表及VARRAY等四种复合数据类型。

    1.PL/SQL记录

    PL/SQL记录类似于高级语言中的结构,每个PL/SQL记录一般都包含多个成员。当使用PL/SQL记录时,首先需要在定义部分定义记录类型和记录变量,然后在执行部分引用该记录变量。需要注意,当引用记录成员时,必须要加记录变量作为前缀(记录变量.记录成员)。

    示例如下:

    如例所示,emp_record_type是PL/SQL记录类型,并且该PL/SQL记录类型包含了三个成员(name,salary,title);emp_record是记录变量;emp_record.name 则表示引用记录变量emp_record的成员。

    2.PL/SQL表

    PL/SQL表类似于高级语言中的数组。需要注意,PL/SQL表与高级语言的数组有所区别,高级语言数组的下标不能为负,但PL/SQL表的下标可以为负值;高级语言数组的元素个数有限制,而PL/SQL表的元素个数没有限制,并且其下标没有上下限。当使用PL/SQL表时,必须首先在定义部分定义PL/SQL表类型和PL/SQL表变量,然后在执行部分中引用该PL/SQL表变量。

    示例如下:

    如例所示,ename_table_type为PL/SQL表类型;emp.ename%type指定了PL/SQL表元素的数据类型和长度;ename_table为PL/SQL表变量,

    ename_table(-1)则表示下标为-1的元素。

    3.嵌套表

    嵌套表类似于高级语言中的数组。需要注意,高级语言数组和嵌套表的下标都不能为负值;高级语言的元素个数是有限制的,而嵌套表的元素个数是没有限制的。嵌套表和PL/SQL表非常类似,但嵌套表可以作为表列的数据类型,而PL/SQL表不能作为表列的数据类型。当在表列中使用嵌套时,必须首先使用create type语句建立嵌套表类型。示例如下:

    如例所示,对象类型emp_type用于存储雇员信息,而emp_array是基于emp_type的嵌套表类型,它可以用于存储多个雇员的信息。当建立嵌套表类型之后,就可以在表列或对象属性中将其作为用户自定义数据类型来引用。但需要注意,当使用嵌套表类型做表列时,必须要为其指定专门的存储表。示例如下:

    4.VARRAY

    VARRAY类似于嵌套表,它可以作为表列和对象类型属性的数据类型。但需要注意,嵌套表的元素个数没有限制,而VARRAY的元素个数是有限制的。当使用VARRAY时,必须首先建立VARRAY类型。示例如下:

     

    如例所示,对象类型article_type用于存储文章信息,而article_array则用于存储多篇文章的信息,并且最多可以存储20篇文章。当建立VARRAY类型之后,可以在表列或对象属性中将其作为用户自定义数据类型来引用。示例如下:

    注意,嵌套表列数据需要存储在专门的存储表中,而VARRAY数据则与其他列数据一起存放在表段中。

  • 相关阅读:
    datetime函数和random.seed()函数的应用
    TP5 display()
    _STORAGE_WRITE_ERROR_
    nginx下基于ThinkPHP框架的网站url重写
    Thinkphp3.2版本Controller和Action的访问方法
    Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
    如何将word公式粘贴到TinyMCE里面
    如何将word公式粘贴到eWebEditor里面
    如何将word公式粘贴到wangEditor里面
    如何将word公式粘贴到xhEditor里面
  • 原文地址:https://www.cnblogs.com/FeiyueHang/p/2094862.html
Copyright © 2011-2022 走看看