zoukankan      html  css  js  c++  java
  • Oracle PL/SQL 程序设计读书笔记 第13章 其他数据类型

    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 类型

  • 相关阅读:
    基于GIS的生态环境信息一张图系统应用与研究
    基于GIS的开源社区(村)网格化数据管理平台
    智慧乡村综合解决方案数字化智能农业
    开源免费乡村振兴数字乡村平台
    Oracle连接字符串记录
    SqlLocalDB使用笔记
    Orchard分类Taxonomies图文教程
    自己手动maven命令将jar包安装到本地。
    Mysql如何去掉数据库中重复记录?
    常见的数据库方面问题
  • 原文地址:https://www.cnblogs.com/tjpanda88/p/2285463.html
Copyright © 2011-2022 走看看