clob 类型

clob 类型在 OracleDataba 中 VARCHAR2 字段类型 最大值为 4000 PL SQL 中 VARCHAR2 变量类型 最大字节长度为 32767 在 Oracle 中 LOB LargeObject 大型对象 类型的字段现在用得越来越多了 因为这种类型的字段 容量大 最多能容纳 4GB 的数据 且一个表中可以有多个这种类型的字段 很灵活 适用于数据量非常大的业务领域 如图

在Oracle Database中,VARCHAR2 字段类型,最大值为4000;PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767。

 

  • 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。
  • LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。
  • 而CLOB,即字符型大型对象(Character Large Object),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。

 

Oracle中的LOB数据类型分类

  •     CLOB:存储大量 单字节 字符数据
  •     NLOB:存储定宽 多字节 字符数据。
  •     BLOB:存储较大无结构的二进制数据。
  •     BFILE:将二进制文件存储在数据库外部的操作系统文件中。存放文件路径。

大对象列时,插入空白构造函数。

  •     字符型:empty_clob(),empty_nclob()
  •     二进制型:empty_blob()

 

读取大对象数据的过程和函数

  建表语句:

create table TEMP ( name VARCHAR2(200), age NUMBER, temp_clob CLOB )

 DBMS_LOB包:包含处理大对象的过程和函数

1. DBMS_LOB.Read():从LOB数据中读取指定长度数据到缓冲区的过程。

   语法: DBMS_LOB.Read(LOB数据,指定长度,起始位置,存储返回LOB类型值变量);

DECLARE l_clob CLOB; vrstr VARCHAR2(1000); lenght NUMBER(4); stat NUMBER(4); BEGIN SELECT t.temp_clob INTO l_clob FROM temp t WHERE ROWNUM = 1; lenght := dbms_lob.getlength(l_clob); stat := 1; dbms_lob.read(l_clob, lenght, stat, vrstr); dbms_output.put_line('返回值为: ' || vrstr); END;

运行结果:  返回值为: 加入博客园的第一天

2. DBMS_LOB.SubStr():从LOB数据中提取子字符串的函数。
    语法: DBMS_LOB.SubStr(LOB数据,指定提取长度,提取起始位置)

DECLARE l_clob CLOB; vrstr VARCHAR2(1000); lenght NUMBER(4); stat NUMBER(4); BEGIN SELECT t.temp_clob INTO l_clob FROM temp t WHERE ROWNUM = 1; lenght := dbms_lob.getlength(l_clob); stat := 1; vrstr := dbms_lob.substr(l_clob, 4, stat); dbms_output.put_line('返回值为: ' || vrstr); END;

运行结果:  返回值为: 加入博客

 3. DBMS_LOB.InStr():从LOB数据中查找子字符串位置的函数。
     语法: DBMS_LOB.InStr(LOB数据, 子字符串);

DECLARE l_clob CLOB; vrstr VARCHAR2(1000); lenght NUMBER(4); stat NUMBER(4); BEGIN SELECT t.temp_clob INTO l_clob FROM temp t WHERE ROWNUM = 1; stat := 1; vrstr := dbms_lob.instr(l_clob, '博客'); dbms_output.put_line('返回值为: ' || vrstr); END;

运行结果:  返回值为: 3

4. DBMS_LOB.GetLength():返回指定LOB数据的长度的函数。
    语法: DBMS_LOB.GetLength(LOB数据)

操作大对象数据的过程   

DECLARE l_clob CLOB; vrstr VARCHAR2(1000); lenght NUMBER(4); stat NUMBER(4); l_value varchar2(1000); BEGIN l_value := 'CLOB'; lenght := LENGTH(l_value); SELECT t.temp_clob INTO l_clob FROM temp t WHERE rownum = 1 FOR UPDATE; dbms_lob.write(l_clob,lenght,4, l_value); dbms_output.put_line('返回值为: ' || l_clob); COMMIT; END;

运行结果:  返回值为: 加入博CLOB一天           被替换前的值为:  加入博客园的第一天

2. DBMS_LOB.Append():将指定的LOB数据追加到指定的LOB数据后的过程。
    语法:  DBMS_LOB.Append(LOB数据,LOB数据);

DECLARE l_clob CLOB; l_value varchar2(1000); BEGIN l_value := ',这是大对象列'; SELECT t.temp_clob INTO l_clob FROM temp t WHERE rownum = 1 FOR UPDATE; dbms_lob.append(l_clob,l_value); COMMIT; dbms_output.put_line('返回值为: ' || l_clob); END;

运行结果为:  返回值为: 加入博CLOB一天,这是大对象列

 

转载于:https://www.cnblogs.com/ebsblog/p/10522182.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215271.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:17
下一篇 2026年3月18日 下午2:17


相关推荐

  • kubeadm部署高可用kubernetes

    kubeadm部署高可用kubernetes1准备环境(所有主机执行)1.1主机列表cat>>/etc/hosts<<EOF192.168.3.71k8s-master01192.168.3.72k8s-master02192.168.3.73k8s-master03192.168.3.74k8s-worker01192.168.3.75k8s-worker02192.168.3.76k8s-worker03192.168.3.77k8s-worker04

    2022年7月25日
    10
  • QWidget、QDialog、QMainWindow 的异同点

    QWidget、QDialog、QMainWindow 的异同点简述在分享所有基础知识之前 很有必要在这里介绍下常用的窗口 QWidget QDialog QMainWindow 熟悉 Qt 的同学都应该知道 在新建 QtWidgets 项目进行类信息选择时会碰到它们 没错 很巧 每次都能碰到 所以 在以后的 Qt 开发中 我们会经常和它们打交道 常言道 知己知彼 百战不殆 只有了解它们 熟悉它们 才能更好地驾驭它们 QWidget 继承于 QObject 和 QPaintD

    2026年3月18日
    2
  • “养虾”大战再升级!阶跃星辰5万“小龙虾”免费送!OpenClaw概念股又要沸腾了!

    “养虾”大战再升级!阶跃星辰5万“小龙虾”免费送!OpenClaw概念股又要沸腾了!

    2026年3月13日
    2
  • ideaVim 设置[通俗易懂]

    ideaVim 设置[通俗易懂]1、打开如图所示的文件夹:C:\Users\你的用户名\2、创建_ideavimrc文件3、文件内添加以下代码:letmapSpace=”sethlsearchsetincsearchsetignorecasesetsmartcasesetshowmodesetnumbersetrelativenumbersetscrollof…

    2026年4月20日
    4
  • SECS/GEM协议开发系列(四)SECS/GEM基础知识

    SECS/GEM协议开发系列(四)SECS/GEM基础知识此部分主要来自于网络内容的收集整理及自己的一点体会 都是一些 SECS GEM 开发的相关知识点 可以帮助博友们有针对性的去学习 1 FA FactoryAutom 的目的生产费用减少通过自动化减少人力提高生产力通过中央控制增加产量减少操作人员的失误通过对设备状态的把握预测和预防错误设备管理的最大化通过检测设备状态计划性的分配设备保养和工作的时 2 半导体设备通信标准通信协议属于 SEMI 标准中的设备自动化 软件标准 包括 SECS I HSMS SECS

    2026年3月18日
    2
  • Mssql常用经典SQL语句大全完整版–详解+实例

    Mssql常用经典SQL语句大全完整版–详解+实例下列语句部分是Mssql语句,不可以在access中使用。  SQL分类:  DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  首先,简要介绍基础语句:  1、说明:创建数据库C

    2022年5月18日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号