`
xiongpan0807
  • 浏览: 15923 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle数据复杂类型(二)

阅读更多
4.oracle嵌套表
    嵌套表和前面索引表相类似,有些较小的差别(嵌套表的下标是从1开始的)
declare
  type sal_table is table of emp.sal%type;  -----定义一个嵌套表类型  这里没有index  by
  v_sal_table sal_table;            
  
begin
  v_sal_table:=sal_table(1,3,5,6,2,24,2345,234,6567);  ----初始化所定义的sal_table类型的变量(嵌套表的变量必须被初始化,否则报错);
  dbms_output.put_line(v_sal_table(1));  [b]  -----这里的下标从1开始[/b]
end;



5.嵌套表的使用

---创建一个嵌套表类型,当然这个表类型可以使多列的,在这里就用单列的进行演示了
create type booklist is table of varchar( 20 );---这个在执行后,oracle中就会生成一种类型
 


---建立一个表
create table bookClass
(
  id varchar (20 ),
  name varchar (20 ),
  v_booklist booklist  ---类型为前面创建的嵌套表类型
) nested table v_booklist store as booklist_tab;
  --对嵌套表列进行指定, booklist_tab这个可以为任意一个名字,这个名字就是嵌套表的名字


---插入一条记录
insert into bookclass values( '2' ,'美术类' ,booklist( '素描', '油彩' ,'计算机作图' ))



----遍历显示嵌套表中的记录
declare
  booklist_tab booklist;    
begin
  select v_booklist into booklist_tab from bookclass  where rownum =1 ;
  for i in booklist_tab.first..booklist_tab.last loop
    dbms_output.put_line(booklist_tab(i));
  end loop ;
end ;


----修改嵌套表
  update   bookclass b set b.v_booklist = booklist('c#' , '.net', 'c++' ) where rownum = '1';



6.可变数组 使用方法
declare
        type ename is varray(5) of varchar(20);   ---定义一个可变数组类型  其最大长度为5
        v_ename ename:=ename('sdfs','fsdf','sfdsdf');  ------初始化三个元素,这里初始化过几个,下面就只能使用几个
begin
        select t.ename into v_ename(3) from emp t where rownum=1;  
       dbms_output.put_line(v_ename(3)); 
end;


7.集合的一些函数用法

declare
        type ename is varray( 5 ) of varchar( 20 );
        v_ename ename:=ename( 'sdfs' ,'fsdf' , 'sfdsdf'); 
begin
       if v_ename.exists(1 ) then ---exists(n)检查第n个元素是否存在
        dbms_output.put_line( 'have' );
        dbms_output.put_line(v_ename.count); ---count 统计一共有多少个元素
        dbms_output.put_line(v_ename.limit); ---limit 统计最多有多少个元素
        dbms_output.put_line(v_ename.prior( 2 )); ---prior(n)返回第n个元素的前一个元素的下标
        dbms_output.put_line(v_ename.next( 2 ));  ---next(n)返回第n个元素的后一个元素的下标
 [b]                   /*******************************************************
                             这些方法包括可变数组,索引表,嵌套表都支持,
                              另外索引表,嵌套表 还支持delete方法(delete,delete(n),delete(n,m)),
                              需要注意的是delete以后, 未删除的元素的下标不会变化,delete只是把所要删除的元素质空     
                    ************************ ********************************/[/b]
       dbms_output.put_line(v_ename( 3 ));
       else
        dbms_output.put_line( 'no' );
       end if ;
end ;





分享到:
评论

相关推荐

    Oracle中对两个数据表交集查询简介

    Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,本文向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法。第一种方法:利用操作符intersect,intersect操作符...

    oracle导出时间格式转换

    大家都知道,从oracle数据库中导出数据时,如果其中有字段类型为date,那么导出时将会变成to_date('29-...本程序实现了将oracle数据导出文件中的to_date('x','y')转换成'x'的功能,并去掉了一些非SQL语句,如prompt...

    Navicat for Oracle 10.1.7

    它可以在Oracle数据库8i以上的版本中运行,并且支持大部份最新的Oracle功能,包括目录、数据表空间、同义词、物化检索、触发器、序列及类型等。Navicat的的功能不仅可以满足专业开发人员的所有需求,而且对Oracle的...

    Oracle11g从入门到精通2

    7.1.2 隐藏数据的复杂性 7.1.3 实现命名简洁性和易读性 7.1.4 实现更改灵活性 7.2 实现记录的唯一性 7.2.1 用键实现 7.2.2 创建唯一索引 7.2.3 使用序列实现 7.3 实现数据的完整性 7.3.1 域完整性 ...

    oracle database 10g 完整参考手册part1

    第42章 Oracle数据字典指南 第43章 调整应用程序和SQL旅行者指南 第44章 调整中的案例分析 第45章 Oracle Application Server 10g的旅行者指南 第46章 数据库管理旅行者指南 第47章 XML旅行者指南

    oracle11g

    第三章:SQL的数据类型 第四章、WHERE子句中常用的运算符 第五章:分组函数 第六章:数据限定和排序 第七章:复杂查询(上):多表连接技术 第八章:复杂查询(下):子查询 第二部分:用户及数据库对象 第九...

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

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

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

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二) http://download.csdn.net/source/3268312 内容简介  本书是专门为oracle应用开发人员提供的sql和pl/sql编程指南。通过学习本书,读者不仅可以掌握...

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

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二) http://download.csdn.net/source/3268312 内容简介  本书是专门为oracle应用开发人员提供的sql和pl/sql编程指南。通过学习本书,读者不仅可以掌握...

    Oracle 10g应用指导

    第4章 Oracle数据字典管理与数据类型。包括数据字典的分类、使用方法以及各种对象的具体查询等做了详细的介绍。第5章 数据库对象的创建与使用。主要包括各种类型的表创建以及适用情形,如外部表、分区表、嵌套表、...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle对两个数据表交集的查询

    下面向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法,笔者感到这两种方法执行效率高、使用方便。 第一种方法:利用操作符intersect intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即...

    Oracle8i_9i数据库基础

    §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用SQL Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2 SQL...

    ORACLE9i_优化设计与系统调整

    第二部分 ORACLE应用系统设计优化 91 第8章ORACLE数据库系统优化安装 91 §7.1 应用系统环境规划和Oracle系统安装考虑 91 §7.1.1 操作系统安装考虑 91 §7.1.2 Oracle系统安装考虑 92 §7.2 关于创建多个Oracle实例...

    Oracle11g从入门到精通

    7.1.2 隐藏数据的复杂性 7.1.3 实现命名简洁性和易读性 7.1.4 实现更改灵活性 7.2 实现记录的唯一性 7.2.1 用键实现 7.2.2 创建唯一索引 7.2.3 使用序列实现 7.3 实现数据的完整性 7.3.1 域完整性 7.3.2 ...

    Oracle+10g应用指导与案例精讲

    第4章 Oracle数据字典管理与数据类型。包括数据字典的分类、使用方法以及各种对象的具体查询等做了详细的介绍。第5章 数据库对象的创建与使用。主要包括各种类型的表创建以及适用情形,如外部表、分区表、嵌套表、...

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

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

    oracle database 11g 高清完整中文版part2

     第45章 oracle 数据字典指南  第46章 应用程序和sql 调整指南  第47章 sql 结果缓存和客户端查询缓存  第48章 关于调整的示例分析  第49章 高级体系结构选项—— db保险库、内容db 和记录db  第50章 oracle ...

Global site tag (gtag.js) - Google Analytics