热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OraclePL/SQL程序设计读书笔记-第13章其他数据类型

OraclePLSQL程序设计读书笔记-第13章其他数据类型OraclePLSQL程序设计读书笔记-第13章其他数据类型13.1BOLEAN类型13.2

Oracle PL/SQL 程序设计读书笔记 - 第13章 其他数据类型

Oracle PL/SQL 程序设计读书笔记 - 第13章 其他数据类型

13.1 BOLEAN类型

13.2 RAW数据类型

我们可以用RAW数据类型保存和操作量比较少量的二进制数据。和VARCHAR2以及其他字符类型不同的是,在数据库和PL/SQL程序音来回传递RAW数据时,不会发生任何字符集的转换。

variable_name RAW(maximun_size)

maximun_size的取值范围从1到32767。而数据库中的RAW列最多只能容纳2000个字节。

13.3 UROWID和ROWID数据类型

ROWID7就是一个行标识符,用来表示数据库表中一行记录的物理地址的二进制值。 UROWID中的U代表能用的,一个UROWID变量可以用于任何类型的表的任何ROWID。

注:一个表中的ROWID是可以改变的。在oracle8i之后出现的这个特性。所以通常不建议在我们的应用程序中使用ROWID。

13.4 LOB数据类型

LOB可以保存大量(从8到128TB)的二进制数据。 内部的LOB(包括BLOB,CLOB,NCLOB)都保存在数据库内部,并且参与到数据库事务中。外部的LOB(BFILE)代表的保存在数据库表空间以外的操作系统中的二进制文件。外部LOB不参与到事务中。

13.5 使用LOB

13.5.1 理解LOB定位符

数据库的LOB列存储的是LOB定位符,这些定位符又指向保存在数据库其他地方的LOB段的真实数据。

13.5.2 LOB的空和NULL

一个空的LOB是指LOB定位符没有指向任何LOB数据。它和NULL LOB不同,后者是指LOB列中(或者变量)连LOB定位符都没有。我们必须首先用IS NULL测试来检查是否存在定位符,然后在检查长度非零。

13.5.3 向LOB中写数据

  • DBMS_LOB.WRITE 向LOB中随机的写入数据
  • DBMS_LOB.WRITEAPPEND 向LOB的末尾追加数据

13.5.3 读取LOB数据

  • DBMS_LOB.READ 读取LOB数据

13.5.5 BFILE不同于其他

  • BFILE的值保存在一个操作系统文件中,而不是数据库内部。
  • BFILE不会参与到事务中,然而,对于BFILE定位符的修改可以回滚或者提交。
  • 一般而言,在数据库内部,我们对BFILE口令能读取。

  • DBMS_LOB.LOADCLOBFROMFILE 从一个BFILE中加载到CLOB

  • DBMS_LOB.LOADBLOBFROMFILE 从一个BFILE中加载到BLOB。

13.5.6 SecureFiles和BasicFiles

SecureFiles是从Oracle数据库的11g引入的,在旧的LOB实现方式上提供了许多改进,后者叫做BasicFiles。

13.5.7 临时LOB

  • 创建一个临时LOB

    DBMSLOB.CREATEMPORARY ( lobloc IN OUT NOCOPY [ BLOB | CLOB CHARACTER SET ANY_CS ], cache IN BOOLEAN, dur IN PLSINTEGER := DBMSLOB.SESSION);

  • 释放临时LOB

    DBMSLOB.FREETEMPORARY ( lobloc IN OUT NOCOPY [ BLOB | CLOB CHARACTER SET ANY_CS ]);

  • 检查一个LOB是否是临时的

函数ISTEMPORARY可以告诉我们一个LOB定位符指向的到底是一个临时LOB还是一个持久化的LOB。返回1说明是一个临时LOB,返回0说明不是。

DBMS_LOB.ISTEMPORARY (
   lob_loc IN OUT NOCOPY
[ BLOB | CLOB CHARACTER SET ANY_CS ])

13.6 预定义的对象类型

13.6.1 XMLType 类型

13.6.2 URI 类型

13.6.3 Any 类型


推荐阅读
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 本文介绍了在PostgreSQL中批量导入数据时的优化方法。包括使用unlogged表、删除重建索引、删除重建外键、禁用触发器、使用COPY方法、批量插入等。同时还提到了一些参数优化的注意事项,如设置effective_cache_size、shared_buffer等,并强调了在导入大量数据后使用analyze命令重新收集统计信息的重要性。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
sumviewbk_405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有