一、PL/SQL记录
定义:
  TYPE <类型名> IS RECORD <列名1 类型1,列名2 类型2,...列名n 类型n,> [NOT NULL]
  <列的类型>可以为Oracle的数据类行以及用户自定义类型;可以是记录类型的嵌套。

二、PL/SQL表
定义:
  TYPE <类型名> IS TABLE OF <列的类型> [NOT NULL] INDEX BY BINARY_INTEGER;
  <列的类型>可以为Oracle的数据类行以及用户自定义类型。

属性方法:
  .count          --返回pl/sql表的总行数
  .delect          --删除pl/sql表的所有内容
  .delect(行数)      --删除pl/sql表的指定的行
  .delct(开始行,结束行)   --删除pl/sql表的多行
  .first            --返回表的第一个INDEX;
  .next(行数)       --这个行数的下一条的INDEX;
  .last             --返回表的最后一个INDEX;

三、结合使用PL/SQL表和PL/SQL记录
示例:

DECLARE
  CURSOR c_1 is select empno,ename,job,sal from emp;

  TYPE myrecord IS RECORD(empno emp.empno%type,ename emp.ename%type,job emp.job%type,sal emp.sal%type);   --定义一个名为myrecoed的PL/sql记录类型;

  TYPE mytable IS TABLE OF myrecord index by binary_integer;    --定义一个名为mytable的PL/sql表类型;字段类型为PL/sql记录类型;
  tab_1 mytable;                                      --为mytable类型实例化一个tab_1对象;

  n number:=;
BEGIN
      --赋值
      for i in c_1
      loop
         tab_1(n).empno:=i.empno;
         tab_1(n).ename:=i.ename;
         tab_1(n).job:=i.job;
         tab_1(n).sal:=i.sal;
         n:=n+;
      end loop;
      n:=;
      --输出
      for i in n..tab_1.count
      loop
           dbms_output.put_line(i||' '||tab_1(i).empno||' '||tab_1(i).ename||' '||tab_1(i).job||' '||tab_1(i).sal);
      end loop;
END; 

Oracle pl/sql 记录、表类型的更多相关文章

  1. oracle pl sql 解锁表

    select   p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name   from   v$pr ...

  2. Oracle PL/SQL随堂笔记总结

    1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的p ...

  3. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  4. oracle PL/SQL(procedure language/SQL)程序设计

    PL/SQL(procedure language/SQL)语言是Oracle对SQL语言的过程化扩充,是一个完整的编程语言.PL/SQL实现了过程化语句(如分支.循环等)与SQL语句的无缝连接,将过 ...

  5. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  6. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

  7. [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)

    原文:[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆) [推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/S ...

  8. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  9. [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)

    原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL ...

随机推荐

  1. jenkins显示发送邮件成功,但未收到邮件

    一. 构建的控制台输出显示日志发送成功,但是未收到邮件 今天在完成构建的时候,破天荒的发现构建的控制台输出显示日志发送成功,但QQ邮箱的确没收到邮件 15:22:40 D:\python_worksh ...

  2. poj2114树分治

    题意:给你一棵树,每条边有权值,求有没有一条链使得权值和为k 题解:和上一题类似,依旧是树分治,只是我们储存结果的时候是判断加起来为k的点对数,刚开始本来想用map存答案,结果就t了,后来用了vect ...

  3. Kali 2.0 安装后的初始配置

    准备 1.VMware Workstation 2.kali-linux-2.0-amd64.iso 安装 手动安装 VMware 创建新的虚拟机,先不导入ISO文件,系统选择Debian 7.x 6 ...

  4. js修改隔行tr的颜色。

    <!DOCTYPE html><html lang="zh-Hans"><head> <meta charset="UTF-8& ...

  5. Sublime Text:学习资源篇

    官网 http://www.sublimetext.com/ 插件 https://packagecontrol.io 教程 Sublime Text 全程指南 Sublime Text 2 入门及技 ...

  6. TreeView的用法总结

    1.循环往treeview中添加数据 public AuthorNavUserControl() { InitializeComponent(); LoadTrees(MainForm.Project ...

  7. mysql分表和分区实际应用简介

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...

  8. Android Studio 开始运行错误

    /******************************************************************************** * Android Studio 开 ...

  9. 在Windows 7上安装ACE 6.1.0

    主机环境    操作系统:Windows 7 专业版准备ACE    用浏览器打开http://download.dre.vanderbilt.edu/,下载ACE-6.1.0和ACE-html-6. ...

  10. group by 和 聚合函数

    1.在oracle中 select * from Table group by id 会报错. 会报不是group by 表达式.为什么一定不能是 * ,而必须是分组的列或者某个列的聚合函数. 在my ...