知识大全 Oracle复合数据类型(4)

Posted 元素

篇首语:青春须早为,岂能长少年。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle复合数据类型(4)相关的知识,希望对你有一定的参考价值。

Oracle复合数据类型(4)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   使用集合    象记录一样 集合可以在两个层面上使用      操作整个集合     访问集合中的单个元素    第一种情况使用集合名 第二种情况使用下标     collection(subscript)    index_by表的下标是两为的整数 可以为正也可以为负 范围是 嵌套表和VARRAY表示元素在集合中的位置 用户很难灵活设计下标 这是因为      嵌套表开始是紧密的(相对于疏松)     VARRAY始终保持紧密     这两种集合的下标都由 开始     初始化 删除 引用集合    使用集合之前必须要初始化 对于Index_by表初始化是自动进行的 但是对于嵌套表和VARRAY就必须使用内建的构造函数 如果重新调用 嵌套表和VARRAY自动置NULL 这不只是元素置NULL 而是整个集合置NULL 给集合内的元素赋值需要使用下标符号 将一个集合的值赋给另一个集合 只需要简单的使用赋值操作符     Index_by集合初始化是最简单的 只要涉及其中的一个元素集合就被初始化了     例     DECLARE    TYPE symbol_tab_typ IS TABLE OF VARCHAR ( ) INDEX BY BINARY_INTEGER;  TYPE account_tab_typ IS TABLE OF account%ROWTYPE INDEX BY BINARY_INTEGER;  symbol_tab symbol_tab_typ;  account_tab account_tab_typ;  new_acct_tab account_tab_typ;    BEGIN   初始化集合元素 和   SELECT * INTO account_tab( )  FROM accounts WHERE account_nbr= ;    SELECT * INTO account_tab( )  FROM accounts WHERE account_nbr= ;    IF account_tab( ) balance< THEN  chang_maintenance_fee( );  END IF    new_acct_tab:=account_tab;  symbol_tab( ):= ORCL ;  symbol_tab( ):= CSCO ;  symbol_tab( ):= SUNM ;    publish_portfolio(symbol_tab);    嵌套表和VARRAY由构造函数初始化 构造函数和集合的名字相同 同时有一组参数 每个参数对应一个元素 如果参数为NULL 那么对应的元素就被初始化为NULL 如果创建了元素 但没有填充数据 那么元素将保持null值 可以被引用 但不能保持数据 如果元素没有初始化 那么就不能引用该元素     例     DECLARE    TYPE stock_list IS TABLE OF stock symbol%TYPE;  TYPE top _list IS VARRAY ( ) OF stocks symbol%TYPE;  biotech_stocks stock_list;  tech_ top _list;    BEGIN   非法 集合未初始化   biotech_stocks( ):= AMGN ;  IF biotech_stocks IS NULL THEN   初始化集合  biotech_stocks =( AMGN BGEN IMCL GERN CRA );  END IF;  tech_ :=top _list( ORCL CSCO MSFT INTC SUNW IBM NULL NULL);  IF tech_ ( ) IS NULL THEN  tech_ ( ):= CPQ ;  END  tech_ ( ):= DELL ;    在这个例子中 嵌套表BIOTECH_STOCKS初始化有 个元素 VARRAY tech_ 集合最多能有 个元素 但构造函数只创建了 个元素 其中还有两个元素是NULL值 并程序中给他们赋值     初始化基于记录的集合 就必须将记录传递给构造函数 注意不能只是简单的将记录的域传递给构造函数     例     DECLARE    TYPE stock_quote_rec IS RECORD  (symbol stock symbol%TYPE   bid NUMBER( )   ask NUMBER( )   volume NUMBER NOT NULL:=   );  TYPE stock_tab_typ IS TABLE OF stock_quote_rec;  quote_list stock_tab_typ;  single_quote stock_quote_rec;    BEGIN  single_quote symbol:= OPCL ;  single_quote bid:= ;  single_quote ask:= ;  single_quote volume:= ;   合法  quote_list:=stock_tab_typ(single_quote);   不合法  quote_list:=stock_tab_typ( CSCO );  DBMS_OUTPUT LINE(quote_list( ) bid); cha138/Article/program/Oracle/201311/18831

相关参考

知识大全 Oracle基本数据类型存储格式浅析(一)-字符类型

Oracle基本数据类型存储格式浅析(一)-字符类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle基本数据类型存储格式浅析—日期类型(3)

Oracle基本数据类型存储格式浅析—日期类型(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle数据类型及存储方式

Oracle数据类型及存储方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概述  通过实例全

知识大全 Oracle数据库入门之函数/类型

Oracle数据库入门之函数/类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle主

知识大全 Oracle数据库游标的类型

Oracle数据库游标的类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  游标是SQL的一个内

知识大全 java语言操作Oracle数据库中的CLOB数据类型

java语言操作Oracle数据库中的CLOB数据类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 全面探讨PL/SQL的复合数据类型

全面探讨PL/SQL的复合数据类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PL/SQL有

知识大全 ORACLE大数据类型的操作之一CLOB

ORACLE大数据类型的操作之一CLOB  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家在应

知识大全 Oracle9i的标量数据类型

Oracle9i的标量数据类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Oraclei的标量数

知识大全 用PHP操纵Oracle的LOB类型的数据

用PHP操纵Oracle的LOB类型的数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!《PHP+