`

Oracle 10g复合数据类型pl/sql集合学习六——索引表、嵌套表、变长数组

阅读更多
--Oracle 10g复合数据类型pl/sql集合,集合又可以分为索引表、嵌套表、变长数组
--1、索引表(下标没有长度限制,且可以为负值)
--在9i前,定义索引表时,只能使用binary_integer和pls_integer作为下标的数据类型,
--但是在9i后,下标数据类型还可以使用varchar2
declare
type area_table_type is table of number
index by varchar2(10);
area_table area_table_type;
begin
area_table('北京'):=1;
area_table('上海'):=1;
area_table('广州'):=1;
dbms_output.put_line('第一个元素:'||area_table.first);
dbms_output.put_line('最后一个元素:'||area_table.last);
dbms_output.put_line('第n个元素:'||area_table('北京'));
end;


    第一个元素:北京
    最后一个元素:上海
    第n个元素:1

--2、嵌套表(起始为1,没有长度限制)
--注意:使用嵌套表变量时,必须使用其构造方法初始化
declare
type community_type_name is table of communitytype.name%type;
comtype_name community_type_name;
begin
--使用构造方法初始化
comtype_name:=community_type_name('初始化值');
dbms_output.put_line('赋值前:'||comtype_name(1));
select name into comtype_name(1)
from communitytype
where community_type_id = 'ebook';
dbms_output.put_line('赋值后:'||comtype_name(1));
end;


    赋值前:初始化值
    赋值后:电子图书

--3、变长数组(元素下标从1开始,且有最大值)
--注意:当使用varray元素时,必须要使用其构造方法初始化varray元素
declare 
type ename_table_type is varray(20) of communitytype.name%type;
ename_table ename_table_type:=ename_table_type('ebook');
begin
select name into ename_table(1) from communitytype
where community_type_id = 'ebook';
dbms_output.put_line('资源库名称:'||ename_table(1));
end;


    资源库名称:电子图书


--二维变长数组
declare
--一维数组
type first_varray_type is varray(10) of int;
--二维数组
type second_varray_type is varray(10) of first_varray_type;
--初始化
variable_varray second_varray_type:=second_varray_type(
first_varray_type(34,23,53,34),    
first_varray_type(23,67,95),
first_varray_type(9,4)
);
begin
dbms_output.put_line('显示二维数组所有元素:');
for i in 1..variable_varray.count loop
for j in 1..variable_varray(i).count loop
dbms_output.put_line('variable_varray('||i||','||j||')='||variable_varray(i)(j));
end loop;
end loop;
end;

显示二维数组所有元素:
variable_varray(1,1)=34
variable_varray(1,2)=23
variable_varray(1,3)=53
variable_varray(1,4)=34
variable_varray(2,1)=23
variable_varray(2,2)=67
variable_varray(2,3)=95
variable_varray(3,1)=9
variable_varray(3,2)=4
--多级嵌套表
declare
type al_table_type is table of int;
type nal_table_type is table of al_table_type;
--初始化
nvl nal_table_type:=nal_table_type(
al_table_type(2,4),
al_table_type(5,73)
);
begin
dbms_output.put_line('显示二维嵌套表的所有元素:');
for i in 1..nvl.count loop
for j in 1..nvl(i).count loop
dbms_output.put_line('nvl('||i||','||j||')='||nvl(i)(j));
end loop;
end loop;
end;

显示二维嵌套表的所有元素:
nvl(1,1)=2
nvl(1,2)=4
nvl(2,1)=5
nvl(2,2)=73
--多级索引表
declare
type al_table_type is table of int
index by binary_integer;
type nal_table_type is table of al_table_type
index by binary_integer;
nvl nal_table_type;
--初始化
begin
nvl(1)(1):=10;
nvl(1)(2):=5;
nvl(2)(1):=100;
nvl(2)(2):=50;
dbms_output.put_line('显示二维索引表的所有元素:');
for i in 1..nvl.count loop
for j in 1..nvl(i).count loop
dbms_output.put_line('nvl('||i||','||j||')='||nvl(i)(j));
end loop;
end loop;
end;

显示二维索引表的所有元素:
nvl(1,1)=10
nvl(1,2)=5
nvl(2,1)=100
nvl(2,2)=50
分享到:
评论

相关推荐

    oracle10g_pl/sql

    oracle10g pl/sql完备教程,供初学者学习与开发者参考

    精通Oracle 10g SQL和PL/SQL

    本书是专门为oracle开发人员而提供的编程指南 通过学习本书 读者不仅可以掌握编写sql语句和pl/sql块的基础知识 而且还可以掌握sql高级特征 正则表达式 flashback查询 merge语句 sql:1999连接 和pl/sql高级特征 ...

    Oracle PL/SQL程序设计(第5版)(套装上下册)

    《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

    通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...

    Oracle PL SQL程序设计 上 第五版(代码示例)

    《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...

    oracle PL/SQL pdf学习资料

    oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料

    Oracle PL/SQL语言初级教程

    PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...

    Oracle 11g SQL和PL SQL从入门到精通〖送源代码〗

    通过学习本书,读者不仅可以掌握Oracle常用工具Oracle Universal Installer、Net Comfiguration Assistant、SQL Developer、SQL*Plus的作用及使用方法,而且可以掌握SQL语句和PL/SQL的各种基础知识和高级特征(记录...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

    通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...

    Oracle PL SQL程序设计 中文第五版 上册

    《oracle pl/sql程序设计(第5版)(上下册)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题这6个方面详细系统地讨论了pl/sql以及如何有效地...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    Oracle PL/SQL实例编程 Oracle PL/SQL实例编程 Oracle PL/SQL实例编程

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    oracle PL/SQL测试题目和详细答案

    pl/sql存储过程,函数,游标,以及存储过程中的基础知识,绝对值得你收藏的经典题目,让你的pl/sql得到最大的锻炼。让你的数据库逻辑更加灵活。

    oracle 中 pl/sql 只是学习方法

    oracle 中 pl/sql 只是学习方法,喜欢 oracle 的朋友都下了看看吧

    精通Oracle 10g PL/SQL编程

    通过学习本书,读者不仅可以掌握PL/SQL的基础编程知识(嵌入SQL语句和编写子程序),而且还可以掌握PL/SQL的所有高级开发特征(使用记录类型、集合类型、对象类型和大对象类型)。另外,本书还为应用开发人员提供了大量...

    win7 x64 安装oracle10g x64 和 PL/SQL Developer

    win7 x64 免安装oracle10g 安装 PL/SQL Developer PL/SQL Developer 安装

    Oracle PL/SQL学习官方教材

    Oracle PL/SQL学习官方教材,英文版,覆盖了PL/SQL的所有知识,适合入门者或作为参考资料.

    Oracle PL/SQL programming(5th Edition)

    Use new Oracle Database 11g tools and techniques such as PL/Scope, the PL/SQL hierarchical profiler, and the SecureFiles technology for large objects Build modular PL/SQL applications using ...

    DBAtools for PL/SQL表空间管理器

    PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...

    oracle 9i pl/sql程序设计笔记

    oracle 9i pl/sql程序设计笔记。

Global site tag (gtag.js) - Google Analytics