记录类型非常类似数据库表中的行. 记录作为一个整体本身并没有值, 不过每个单独成员或字段都有值, 记录提供了一种把这些值当做一组进行操作的方法.

例如:

   1:  -- create a table
   2:  -- chap11_01.sql
   3:  create table books (
   4:      book_id    integer;
   5:      isbn    varchar2(13),
   6:      title    varchar2(200),
   7:      summary    varchar2(2000),
   8:      author    varchar2(200),
   9:      date_published    DATE,
  10:      page_count    number
  11:  );
  12:   
  13:  -- 方法1
  14:  -- chap11_02.sql
  15:  declare
  16:      my_book    books%rowtype;
  17:  begin
  18:      select *
  19:        into my_book
  20:        from books
  21:       where title = 'oracle pl/sql programming, 5th Edition';
  22:       
  23:      if my_book.author like '%Feuerstein%'
  24:      then
  25:          dbms_output.put_line('Our newest ISBN is' || my_book.isbn);
  26:      end if;
  27:  exception
  28:      when no_data_found then
  29:          dbms_output.put_line('There is no data what you want it.');
  30:  end;
  31:  /
  32:   
  33:  -- 方法2
  34:  -- chap11_03.sql
  35:  declare
  36:      type author_title_rt is record (
  37:          author books.author%type,
  38:          title books.title%type);
  39:      l_book_info author_title_rt;
  40:  begin
  41:      select author, title into l_book_info
  42:          from books where isbn = '119'
  43:      dbms_output.put_line('author is : ' || l_book_info.author);
  44:      dbms_output.put_line('title : ' || l_book_info.title);
  45:  exception
  46:      when no_data_found then
  47:          dbms_output.putline('there is no data what you want');
  48:  end;
  49:  /

声明记录 3 种方式

1. 基于记录类型

declare one_book books%rowtype;

2. 基于游标记录类型

declare

cursor my_books_cur is

select * from books where author like ‘%FEUERSTEIN%’;

one_sf_book my_books_cur%rowtype;

3. 用户自定义的记录类型

例如上例中的方法 2 .

触发器伪记录

如果是在数据库触发器操作某个表, 数据库为我们提供了两种结构, OLD 和 NEW, 这两个结构是用 %rowtype声明的基于表的记录类型有相同的格式, 表中的每一列都有一个对应的字段:

OLD: 这条伪记录代表的是当前事务开始之前表中记录的值.

NEW: 这条伪记录代表的是当前事务结束之后, 表中记录的新值.

plsql programming 11 记录类型的更多相关文章

  1. Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

    初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update del ...

  2. PLSQL Developer 11 使用技巧(持续更新)

    PLSQL Developer 11 使用技巧 (持续更新) 目录(?)[-] 首先是我的颜色配置 常用快捷键 提升PLSQL编程效率 按空格自动替换 关闭Window窗口 PLSQL 实用技巧 TI ...

  3. oracle学习之路(二)------数组类型/记录类型的使用

    Oracle记录类型介绍 RECORD:用户自己定义数据类型,由单行多列的标量构成的复合数据类型.它将一个或多个标量封装成一个对象进行操作记录不能够总体拿来比較也不能够总体推断为空.能够总体拿来赋值. ...

  4. oracle中的记录类型

    单词RECORD有“记录”的意思,因此RECORD也称为“记录类型”,使用该类型的变量可以存储由多个列值组成的一行数据. 在声明记录类型变量之前,首先需要定义记录类型,然后才可以声明记录类型的变量. ...

  5. 域名注册域名解析域名绑定 dns服务器解析 域名记录的添加 记录类型含义@ www 访问域名请求过程

    创建一个web应用,简言之就是访问一个域名,可以到达一个地方,这个地方就是你存放供别人查看的文件的地方 就像一条绳,从这头拉一下,可以拉出来另一头的东西 主要有两个部分: 域名 虚拟主机(空间) 1. ...

  6. plsql developer 11 + Oracle 11g 开发环境setup

    这是一个很水的博客, 介绍搭建plsql developer 11+ Oracle 11g 开发环境. 1. 本机上安装Oracle 11g express 对于开发足够了, 300MB的下载文件, ...

  7. PL/SQL集合(一):记录类型(TYPE 类型名称 IS RECORD)

    记录类型 利用记录类型可以实现复合数据类型的定义: 记录类型允许嵌套: 可以直接利用记录类型更新数据. 传统操作的问题 对于Oracle数据类型,主要使用的是VARCHAR2.NUMBER.DATE等 ...

  8. DNS记录类型名单

    原文:http://www.worldlingo.com/ma/enwiki/zh_cn/List_of_DNS_record_types DNS记录类型名单 这 DNS记录类型名单 提供一个方便索引 ...

  9. dns记录类型(转)

    NS:(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终 ...

随机推荐

  1. Docker实践2:安装Docker及weblogic镜像

    安装Docker 以root登录,运行 vi /etc/yum.repos.d/public-yum-ol6.repo,添加如下段落 [ol6_addons]name=Oracle Linux $re ...

  2. python 字典dict和列表list的读取速度问题, range合并

    python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字 ...

  3. Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具

    查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里 ...

  4. t-SNE和LDA PCA的学习

    t-SNE 可以看这篇文章: http://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/ LDA可以看这篇文章: htt ...

  5. javascript快速入门21--DOM总结

    跨浏览器开发 市场上的浏览器种类多的不计其数,它们的解释引擎各不相同,期待所有浏览器都一致的支持JavaScript,CSS,DOM,那要等到不知什么时候,然而开发者不能干等着那天.历史上已经有不少方 ...

  6. 小二助手(react应用框架)-概述

    时间想学习一个前端框架,原因是这样的,我本身是做游戏的,但是自己对前端web比较感兴趣. 然后我就选择自己学哪个框架,Angular.react.vue 最后选择了react,选择的理由就不说了 那做 ...

  7. vulkan

    https://gfxbench.com/device.jsp?benchmark=gfx40&os=Android&api=gl&D=Asus+ZenFone+4+%28Ad ...

  8. 安装Scala 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 错误

    对于安装Scala时 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 错误,不管是linux还是window系统,原因很大可能是scala的安装路径中出现空格 ...

  9. Python连接MySQL乱码(中文变问号)

    #coding=utf-8 import MySQLdb db = MySQLdb.connect("IP","用户名","密码",&quo ...

  10. 在FASTBuild中使用Caching

    上一篇:初识FASTBuild 在FASTBuild中使用缓存只需要注意三个环节: 一.设置编译选项 对于GCC\SNC\Clang编译器,没有特殊的要求 对于MSVC编译器,必须设置/Z7调试模式. ...