动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.oracle imp字符集问题的解决.
.利用 Oracle 10g 技能学习 DB2 9.
.9iR2 的Compress Table 的研究.
.六大数据库集群技术分析和比较.
.如何选购Linux可以搭配的机器之整.
.视图的概念.
.用简单的方法获取Oracle语句的执.
.Oracle产品中的错误的诊断.
.使用特殊索引的注意事项.
.Oracle数据库安全策略分析(一).
.利用多个转储文件导出大量Oracle.
.Oracle 8x中监控sysdba角色用户登.
.PL/SQL入门教程.
.Installing Oracle 10g on SuSE .
.关于Logminer.
.Oracle 的一些基本知识,应该知道.
.Windows环境下Oracle监听服务启动.
.用脚本和查询主动监视Oracle 9i性.
.Oracle-03113错误详细分析与解决.
.TestKing Oracle 1z0-101 V3.

Oracle复合数据类型(4)

发表日期:2008-2-9 |



  使用集合
  
  象记录一样,集合可以在两个层面上使用:
  
  . 操作整个集合
  
  . 访问集合中的单个元素
  
  第一种情况使用集合名,第二种情况使用下标:
  
  collection(subscript)
  
  index_by表的下标是两为的整数,可以为正也可以为负,范围是:-2147483647--2147483647。嵌套表和VARRAY表示元素在集合中的位置,用户很难灵活设计下标,这是因为:
  
  . 嵌套表开始是紧密的(相对于疏松)
  
  . VARRAY始终保持紧密
  
  . 这两种集合的下标都由1开始
  
  初始化、删除、引用集合
  
  使用集合之前必须要初始化,对于Index_by表初始化是自动进行的,但是对于嵌套表和VARRAY就必须使用内建的构造函数。假如重新调用,嵌套表和VARRAY自动置NULL,这不只是元素置NULL,而是整个集合置NULL。给集合内的元素赋值需要使用下标符号。将一个集合的值赋给另一个集合,只需要简单的使用赋值操作符。
  
  Index_by集合初始化是最简单的,只要涉及其中的一个元素集合就被初始化了。
  
  例:
  
  DECLARE
  
  TYPE symbol_tab_typ IS TABLE OF VARCHAR2(5) 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
  --初始化集合元素147和-3
  SELECT * INTO account_tab(147)
  FROM accounts WHERE account_nbr=147;
  
  SELECT * INTO account_tab(-3)
  FROM accounts WHERE account_nbr=3003;
  
  IF account_tab(147).balance<500 THEN
  chang_maintenance_fee(147);
  END IF
  
  new_acct_tab:=account_tab;
  symbol_tab(1):="ORCL";
  symbol_tab(2):="CSCO";
  symbol_tab(3):="SUNM";
  
  publish_portfolio(symbol_tab);
  
  嵌套表和VARRAY由构造函数初始化,构造函数和集合的名字相同,同时有一组参数,每个参数对应一个元素,假如参数为NULL,那么对应的元素就被初始化为NULL,假如创建了元素,但没有填充数据,那么元素将保持null值,可以被引用,但不能保持数据。假如元素没有初始化,那么就不能引用该元素。
  
  例:
  
  DECLARE
  
  TYPE stock_list IS TABLE OF stock.symbol%TYPE;
  TYPE top10_list IS VARRAY (10) OF stocks.symbol%TYPE;
  biotech_stocks stock_list;
  tech_10 top10_list;
  
  BEGIN
  --非法,集合未初始化。
  biotech_stocks(1):='AMGN';
  IF biotech_stocks IS NULL THEN
  --初始化集合
  biotech_stocks:=('AMGN','BGEN',IMCL','GERN',CRA');
  END IF;
  tech_10:=top10_list('ORCL',CSCO','MSFT','INTC','SUNW','IBM',NULL,NULL);
  IF tech_10(7) IS NULL THEN
  tech_10(7):='CPQ';
  END
  tech_10(8):='DELL';
  
  在这个例子中,嵌套表BIOTECH_STOCKS初始化有5个元素,VARRAY tech_10集合最多能有10 个元素,但构造函数只创建了8个元素,其中还有两个元素是NULL值,并程序中给他们赋值。
  
  初始化基于记录的集合,就必须将记录传递给构造函数,注重不能只是简单的将记录的域传递给构造函数。
  
  例:
  
  DECLARE
  
  TYPE stock_quote_rec IS RECORD
  (symbol stock.symbol%TYPE
  ,bid NUMBER(10,4)
  ,ask NUMBER(10,4)
  ,volume NUMBER NOT NULL:=0
  );
  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:=100;
  single_quote.ask:=101;
  single_quote.volume:=25000;

  --合法
  quote_list:=stock_tab_typ(single_quote);
  --不合法
  quote_list:=stock_tab_typ('CSCO',75,76,3210000);
  DBMS_OUTPUT.LINE(quote_list(1).bid);
上一篇:Installing Oracle9i Database on Red Hat Linux 9 人气:449
下一篇:Oracle复合数据类型(2) 人气:510
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号