`
YY_MM_DD
  • 浏览: 16072 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle 记录,嵌套表,集合

阅读更多
1.exists 检查集合中是否存在某个元素,collection.exists(index)
2.count 返回集合中元素的个数 collection.count
3.limit 返回varray中最大的条目数,关联数组和嵌套表返回空
4.first 返回集合的第一个元素
5.last 返回集合的最后一个元素
6.next 返回集合中的下一个元素,如果不存在返回空 collection.next
7.prior 返回集合中的上一个元素,如果不存在返回空
8.extend 扩展集合中元素的个数,不用于关联数组,和未被初始化的集合
collection.extend,collection.extend(n),collection.extend(n,i)
9.trim 从集合的结尾处删除元素
collection.trim(),collection.trim(n)
10.delete 从集合中删除元素 collection.delete,collection.delete(n),collection.delete(m,n)
[i][/i]
---使用数组将查询的记录存放到嵌套表中
declare
  type deptrecord is record
  (
     deptno dept.deptno%type,
     dname dept.dname%type,
     loc dept.loc%type
  );
  type number_array is table of deptrecord;
  number_collection number_array:=number_array();
begin
  number_collection.extend(5);
  dbms_output.put_line('number_collection的数量:'||number_collection.count);
  select * bulk collect into number_collection from dept;
  dbms_output.put_line('number_collection的数量:'||number_collection.count);
  for currow in number_collection.first .. number_collection.last loop
    dbms_output.put_line(number_collection(currow).deptno);
  end loop;
end;

---使用数组将查询的记录存放到嵌套表中
declare
  type deptrecord is record(
    deptno dept.deptno%type,
    dname  dept.dname%type,
    loc    dept.loc%type);
  type number_array is table of deptrecord;
  number_collection number_array := number_array();
  i                 number := 0;
  curroww           number;
begin
  for currow in (select * from dept) loop
    i := i + 1;
    number_collection.extend;
    number_collection(i).deptno := currow.deptno;
    number_collection(i).dname := currow.dname;
    number_collection(i).loc := currow.loc;
  end loop;
  for i in 1 .. number_collection.count loop
    dbms_output.put_line('');
    dbms_output.put_line('循环方式一');
    dbms_output.put_line('deptno:=' || number_collection(i).deptno);
    dbms_output.put_line('dname:=' || number_collection(i).dname);
    dbms_output.put_line('loc:=' || number_collection(i).loc);
  end loop;

  for i in number_collection.first .. number_collection.last loop
    dbms_output.put_line('');
    dbms_output.put_line('循环方式二');
    dbms_output.put_line('deptno:=' || number_collection(i).deptno);
    dbms_output.put_line('dname:=' || number_collection(i).dname);
    dbms_output.put_line('loc:=' || number_collection(i).loc);
  end loop;

  curroww := number_collection.first;
  loop
    exit when curroww is null;
    dbms_output.put_line('');
    dbms_output.put_line('循环方式三');
    dbms_output.put_line('deptno:=' || number_collection(i).deptno);
    dbms_output.put_line('dname:=' || number_collection(i).dname);
    dbms_output.put_line('loc:=' || number_collection(i).loc);
    curroww := number_collection.next(curroww);
  end loop;
end;
分享到:
评论

相关推荐

    Oracle PL/SQL语言初级教程

    嵌套表 24 使用集合 25 集合的方法 28 关于集合之间的比较 29 3.PL/SQL单行函数和组函数详解 29 单行字符串函数 30 单行转换函数 37 SQL中的组函数 40 嵌套函数 42 4.Oracle数据库数据对象分析(上) 42 删除表和...

    最全的oracle常用命令大全.txt

    查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes ...

    精通Oracle.10g.PLSQL编程

    使用复合数据类型 8.1 PL/SQL记录 8.1.1 定义PL/SQL记录 8.1.2 使用PL/SQL记录 8.2 PL/SQL集合 8.2.1 索引表 8.2.2 嵌套表 8.2.3 变长数组(VARRAY) 8.2.4 PL/SQL记录表...

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

    oracle 甲骨文 获得最高认证级别的ISO标准安全认证,性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。但价格不菲 大型企业 db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2...

    oracle 集合

    该过程从嵌套表中删除一个或多个或合部元素 Table_name.DELETE 删除所有元素 Table_name.delete(index)删除指定索引的记录 Table_name.delete(start_index,end_index)删除区间内元素 FIRST 返回集合第一个元素...

    收获不知Oracle

    4.2.2.3 表记录太大检索较慢 139 4.2.2.4 索引回表读开销很大 140 4.2.2.5 有序插入却难有序读出143 4.2.3 奇特的全局临时表 146 4.2.3.1 分析全局临时表的类型146 4.2.3.2 观察各类DML的REDO量 147 4.2.3.3 全局...

    oracle数据库经典题目

    18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM系统表空间。 19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种...

    orcale常用命令

    查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes ...

    精通SQL 结构化查询语言详解

    16.2.7 嵌套触发器  16.2.8 递归触发器  16.2.9 SQL Server中触发器的管理  16.3 Oracle数据库中触发器的操作  16.3.1 Oracle触发器类型  16.3.2 触发器的创建 16.3.3 创建系统触发器  16.3.4 触发器...

    精通SQL--结构化查询语言详解

    16.2.7 嵌套触发器 334 16.2.8 递归触发器 336 16.2.9 sql server中触发器的管理 338 16.3 oracle数据库中触发器的操作 340 16.3.1 oracle触发器类型 340 16.3.2 触发器的创建 341 16.3.3 创建系统触发器 342 ...

    S.Q.LSQL全称

    它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下...

    SQL培训第一期

    属性不依赖于其它非主属性,确保数据表中的每一列数据都和主键直接相关,而不能间接相关,即要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 1.5.3.2 举例 党员表 党员Id 党员姓名 组织Code 符合3NF ...

    精通sql结构化查询语句

    23.3.3 删除存在的数据表 23.4 对数据库中表的操作 23.4.1 向表中添加记录 23.4.2 浏览表中记录 23.4.3 修改已有记录 23.4.4 删除指定记录 23.5 可回复留言板的开发(PHP+SQL Server) 23.5.1 数据表的设计 23.5.2 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例035 使用嵌套循环在控制台上输出 九九乘法表 44 实例036 用while循环计算1+1/2!+1/3!…1/20! 45 实例037 for循环输出空心的菱形 46 实例038 foreach循环优于for循环 47 实例039 终止循环体 48 实例040 循环体的...

Global site tag (gtag.js) - Google Analytics