Oracle中IS TABLE OF的使用

IS TABLE OF :指定是一个集合的表的数组类型,简单的来说就是一个可以存储一列多行的数据类型。

INDEX BY BINARY_INTEGER:指索引组织类型

BULK COLLECT :指是一个成批聚合类型,简单的来说 , 它可以存储一个多行多列存储类型,采用BULK COLLECT可以将查询结果一次性地加载到集合中。

【实例】在SCOTT模式下,使用IS TABLE OF获取所有员工的姓名,职务,工资信息。

declare
  type type_ename is table of emp.ename%type;
  type type_job is table of emp.job%type;
  type type_sal is table of emp.sal%type;  

  var_ename type_ename:=type_ename();
  var_job type_job:=type_job();
  var_sal type_sal:=type_sal();
begin
  select ename,job,sal
  bulk collect into var_ename,var_job,var_sal
  from emp;  

  /*输出雇员信息*/
  for  v_index in var_ename.first .. var_ename.last loop
      dbms_output.put_line(‘雇员名称:‘||var_ename(v_index)||‘ 职务:‘||var_job(v_index)||‘ 工资:‘||var_sal(v_index));
  end loop;
end; 

【实例】在SCOTT模式下,使用IS TABLE OF获取所有员工的所有信息。

    declare
       type emp_table_type is table of emp%rowtype index by binary_integer;
       var_emp_table emp_table_type;
    begin
      select *
      bulk collect into var_emp_table
      from emp;  

      /*输出雇员信息*/
      for i in 1..var_emp_table.COUNT loop
          dbms_output.put_line(‘雇员名称:‘||var_emp_table(i).ename||‘ 职务:‘||var_emp_table(i).job||‘ 工资:‘||var_emp_table(i).sal);
      end loop;
    end;  

原文地址:https://www.cnblogs.com/xwb583312435/p/9056029.html

时间: 2024-10-17 14:16:48

Oracle中IS TABLE OF的使用的相关文章

Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题

转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: 1 2 3 4 5 6 7 8 9 10 11 12 create or replace procedure getidlist is   l_idlist varchar2(200); begin   l_idlist:='1,2,3,4';   for brrs in (select * fro

ORACLE中Drop table cascade constraints

出处:https://www.cnblogs.com/xd502djj/archive/2010/11/16/1878392.html 当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行..一个极简单的例子,例如你有一个员工基本资料表,上面可能有员工编号和员工姓名等字段,另外有一个员工销售表,上面有员工编号和员工销售额两个字段,员工薪资表的员工编号字段为一个foreign key参照到员工基本资料表的

向oracle中的表插入数据的方法

向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:select t.*,rowid from User t for update;-->点击钥匙那个标记就可向表中添加数据 第三种方法:在oracle中的table表中选中你要添加数据的那个表-->点击右键-->选中Edit data-->就可向表中添加数据 第四种方法:通过DAO层来添加

Oracle 中如何手工提交Cluster Table的事务

环境中遇到了ora-00600 4000错误,涉及的对象即为cluster table,下面我这里简单模拟了一下.供参考! ++++创建测试表 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

ORACLE中RECORD、VARRAY、TABLE的使用详解

 1     说明 1.1       RECORD 定义记录数据类型.它类似于C语言中的结构数据类型(STRUCTURE),PL/SQL提供了将几个相关的.分离的.基本数据类型的变量组成一个整体的方法,即RECORD复合数据类型.在使用记录数据类型变量时,需要在声明部分先定义记录的组成.记录的变量,然后在执行部分引用该记录变量本身或其中的成员. 定义记录数据类型的语法如下: TYPE RECORD_NAME IS RECORD( V1  DATA_TYPE1 [NOT NULL][:=DE

oracle数据库中drop table与purge使用实例

oracle 数据库中 drop table 与purge 实际示例: CREATE OR REPLACE PROCEDURE pro_droptable IS cursor cur is select table_name from user_tables where table_name like 'TEMPTABLE%'; drop_sql     varchar2(1000); table_number number; BEGIN SELECT COUNT(*) INTO table_n

oracle中的事务

数据库事务有严格的定义,它必须满足4个特性:原子性(Atomic):表示组成一个事务的多个数据库操作是一个不可分割的原子单元只有所有的操作执行成功,整个事务才能提交,事务中任何一个数据库操作失败,己经执行的任何操作都必须撤销,让数据主加返回到初状态.一致性(Consistency):事务操作成功后,数据所处的状态和它的业务规则是一致的,即数据不会被被破坏.如从A账户转账100元到B账户,不管操作成功与否,A和B的存款总额不变的.隔离性(Isolation):在并发数据操作时,不同的事务拥有各自的

oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①全角字符的判断,或者是含有汉字的字符串的判断 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2.2 实验环境介绍 11.2.0.3  RHEL6.5 一.2.3 本文简介 看到网友问,怎么查询表中某个字段数据是不是包含了

Oracle中的临时表

Oracle中的临时表 在Oracle中,临时表是"静态"的,它与普通的数据表一样只需要一次创建,其结构从创建到删除的整个期间都是有效的.相对于其他类型的表,临时表只有在用户实际向表中添加数据时,才会为其分配空间,并且分配的空间来自临时表空间.这就避免了与永久对象的数据争用存储空间. 创建临时表的语法如下: CREATE GLOBAL TEMPORARY TABLE table_name( column_name data_type,[column_name data_type,...