LONG、BLOB、CLOB的区别以及在ORALCE中的插入和查询操作

Bootloader详解,理解Bootloader看这篇就够了 这里写目录标题一、Bootloader作用(目的)二、完成Boot最终目的的前提条件三、对前提条件的详细说明3.1、对前提条件(1)的说明:3.2、对前提条件(2)的说明:3.3、对前提条件(3)的说明:3.4、对前提条件(4)的说明:3.4、对前提条件(5)的说明:四、loader是干啥的 一、Bootloader作用(目的) Bootloader=Boot + loader Boot的目的: 最终目的:跳到C语言中;为了C语言运行程序会进行一系列的初始化,系统一上电后如何通过一系列的设置让软件程序员 阅读详情

ORACLE中的大对象: 
LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列
LONG RAW: 可变长二进制数据,最长2G
CLOB:  字符大对象Clob 用来存储单字节的字符数据
NCLOB: 用来存储多字节的字符数据
BLOB: 用于存储二进制数据
BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。bfile字段实际的文件存储在文件系统中,字段中存储的是文件定位指针.bfile对oracle来说是只读的,也不参与事务性控制和数据恢复.   
CLOB,NCLOB,BLOB都是内部的LOB(Large Object)类型,最长4G,没有LONG只能有一列的限制。

要保存图片、文本文件、Word文件各自最好用哪种数据类型?
--BLOB最好,LONG RAW也不错,但Long是oracle将要废弃的类型,因此建议用BLOB。
对CLOB与BLOB对象的操作
    1.  查询(GET) 

     查询CLOB     

    //获得数据库连接  
    Connection con = ConnectionFactory.getConnection();  
    con.setAutoCommit(false);  
    Statement st = con.createStatement();  
    //不需要“for update”  
    ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");  
    if (rs.next())  
    {  
        java.sql.Clob clob = rs.getClob("CLOBATTR");  
        Reader inStream = clob.getCharacterStream();  
        char[] c = new char[(int) clob.length()];  
        inStream.read(c);  
        //data是读出并需要返回的数据,类型是String  
        data = new String(c);  
        inStream.close();  
    }  
    inStream.close();  
    con.commit();  
    con.close();
    
    查询BLOB
    Connection con = ConnectionFactory.getConnection(); 
    con.setAutoCommit(false);  
    Statement st = con.createStatement();  
    //不需要“for update”  
    ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");  
    if (rs.next())  
    {  
        java.sql.Blob blob = rs.getBlob("BLOBATTR");  
        InputStream inStream = blob.getBinaryStream();  
        //data是读出并需要返回的数据,类型是byte[]  
        data = new byte[input.available()];  
        inStream.read(data);  
        inStream.close();  
    }  
    inStream.close();  
    con.commit();  
    con.close();  
 
    2.  插入(INSERT)

        
     插入CLOB
 
    //获得数据库连接  
    Connection con = ConnectionFactory.getConnection();  
    con.setAutoCommit(false);  
    Statement st = con.createStatement();  
    //插入一个空对象empty_clob()  
    st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");  
    //锁定数据行进行更新,注意“for update”语句  
    ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");  
    if (rs.next())  
    {  
        //得到java.sql.Clob对象后强制转换为oracle.sql.CLOB  
        oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");  
        Writer outStream = clob.getCharacterOutputStream();  
        //data是传入的字符串,定义:String data  
        char[] c = data.toCharArray();  
        outStream.write(c, 0, c.length);  
    }  
    outStream.flush();  
    outStream.close();  
    con.commit();  
    con.close();       
 

    插入BLOB 
    //获得数据库连接  
    Connection con = ConnectionFactory.getConnection();  
    con.setAutoCommit(false);  
    Statement st = con.createStatement();  
    //插入一个空对象empty_blob()  
    st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");  
    //锁定数据行进行更新,注意“for update”语句  
    ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");  
    if (rs.next())  
    {  
        //得到java.sql.Blob对象后强制转换为oracle.sql.BLOB  
        oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");  
        OutputStream outStream = blob.getBinaryOutputStream();  
        //data是传入的byte数组,定义:byte[] data  
        outStream.write(data, 0, data.length);  
    }  
    outStream.flush();  
    outStream.close();  
    con.commit();  
    con.close(); 
    Hibernate保存BLOB对象
 
    public void addMessage(Messages message,String content_str) {
        Session session = this.getSession();
        message.setContent(Hibernate.createBlob(new byte[1]));
        session.save(message);
        session.flush();
        session.refresh(message, LockMode.UPGRADE);
        SerializableBlob sb = (SerializableBlob)message.getContent(); 
        BLOB blob = (BLOB)sb.getWrappedBlob();
        try {
                OutputStream out = blob.getBinaryOutputStream();
                out.write(content_str.getBytes());
                out.close();
                session.save(message);
         } catch (Exception e) {
           e.printStackTrace();
       }
    }

图像质量评估:使用 SSIM 计算图像相似性 在图像处理领域,衡量两幅图像之间相似性的一种常见方法是使用结构相似性指数(SSIM)。SSIM 是一种全参考的图像质量评估指标,它不仅考虑了图像的亮度、对比度,还考虑了结构信息。在本文中,我们将介绍一个使用 Python 和 OpenCV 实现的 SSIM 计算脚本,并使用该脚本评估两幅图像的相似性。 阅读详情

相关推荐

二维卡尔曼滤波位置,速度融合

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Johnlee2019的博客 8451

BLOB和CLOB的区别以及在ORALCE中的插入和查询操作

ORACLE中的大对象:  LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列 LONG RAW: 可变长二进制数据,最长2G CLOB:  字符大对象Clob 用来存储单字节的字符数据 NCLOB: 用来存储多字节的字符数据 BLOB: 用于存储二进制数据 BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访。...

iteye_17600的博客 205

iOS Certificates, Identifiers & Profiles简介

1. Certificates Certificates是生成开发和生产所需的证书。 2.1 certSigningRequest文件 生成证书前,需要先生成certSigningRequest文件,certSigningRequest文件由【钥匙串访问】生成。 选择菜单【钥匙串访问】,【证书助理】下的【从证书颁发机构请求证书…】 填写【用户电子邮件地址: 】,将【请求是:】的选项改为【储存到磁盘】 输入certSigningRequest文件的文件名,并指定保存位置。 保存certSignin

假装你是大灰狼的专栏 7057

Oracle中long和clob的区别和例子

CLOB:是以LOB(Large Object)存储方式存储的,数据存储在LOB段中。在Oracle数据库中,LONG和CLOB(Character Large Object)都是用于存储大量字符数据的类型,但它们之间存在一些关键的区别。总的来说,尽管LONG类型在Oracle数据库中已经存在很长时间,但由于其限制和性能问题,CLOB类型在大多数情况下是更好的选择。使用CLOB类型可以让我们存储更大的文本内容,并且在一个表中可以有多个其他类型的字段,而不仅仅是LONG。CLOB:最大长度为4GB。

codedadi的博客 1403

BPMN2.0规范及流程引擎选型方案

本文主要简明扼要的介绍了BPMN2.0规范的内容,可让读者快速度的了解BPMN2.0所涵盖的主要内容和图形样式。也较为详细的阐述了如何绘制标准的流程图,以及在软件层面中如何实现业务流程功能,和技术选型。

比特桃 1万+

Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

      最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。 Android中的蓝牙         说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数...

zqf_888的博客 4万+

oracle clob介绍

参考了DAVID的文档:http://blog.youkuaiyun.com/tianlesoftware/article/details/6905406 varchar2类型的对象最大只能存放4000字节的内容,要想存放更多的字符,可以选择用lob字段。lob分clob、blob。 clob是存储字符的,这种类型用于存储大量的文本信息。 blob这种类型用于存储二进制信息,如字处理文档,图像。它不

Shliesce的专栏 5012

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 431

oracle中long和clob的区别以及性能问题?

long类型比clob到底差在什经常看到9i以上的文档,说以后 clob会逐步取代long,一直想不出, 而我在8.1.7上也测试2个字段好像 在存储上也看不出什么区别?么地方? 差别还是很大的, 比如:对于long的表a,不能create table b as select * from a; 但clob则可以… 对于long的用法的确比clob作出了很多的限制。 再问下版主,他们存储上有什么区别? lob可以存储在单独的表空间上 long已经过时了,换成blob或clob吧 存储占用空间大,容易造成热点

liziLove_fengmi的博客 2905

AI Agent智能体在Android开发中的应用

本文探讨了AIAgent(智能代理体)在Android开发中的应用,涵盖技术原理、实践案例与未来趋势。AIAgent通过机器学习、自然语言处理等技术实现代码生成、测试自动化及性能优化,显著提升开发效率。例如,强化学习模型可优化APP响应时间(公式:$\text{响应时间}=f(\text{负载},\text{资源})$),自动化测试覆盖率提升至95%。

郑伟强dev的专栏 122

Ardupilot chibios主函数学习(1)

目录 文章目录目录摘要第一部分chibios主函数**(1)主回调函数入口****(2)主回调函数入口****(3)主回调函数入口****(4)主回调函数入口**1.函数hal.scheduler->init()分析 摘要 本节主要记录自己学习Ardupilot的 chibios代码过程,欢迎批评指正。 第一部分chibios主函数 (1)主回调函数入口 AP_HAL_MAIN_...

陌城烟雨 4243

Oracle中BLOB、CLOB、LONG、LongRaw数据类型的区别

(1)关于BLOB、CLOB、LONG、LongRaw数据类型的区别LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列;LONG RAW: 可变长二进制数据,最长2G;CLOB: 用来存储单字节的字符数据;NCLOB: 用来存储多字节的字符数据;BLOB: 用于存储二进制数据;BFILE: 存储在文件

qqwwwgg1983的专栏 2406

【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

本文介绍Trimble旗下Inpho UASMaster航空摄影测量软件,涵盖其核心功能模块(如Match-AT、OrthoMaster、Summit Evolution等)及安装教程。文章详细说明了从安装到汉化破解的全过程,并提供Inpho 8.0.1安装包下载链接与提取码,适用于无人机摄影测量专业用户。

智慧空间实验室 1万+

BLOB和CLOB的区别以及在ORALCE中的插入和查询操作-zhai

http://blog.youkuaiyun.com/jojoy_828/article/details/4231165 ORACLE中的大对象: LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列 LONG RAW: 可变长二进制数据,最长2G CLOB: 字符大对象Clob 用来存储单字节的字符数据 NCLOB: 用来...

Luxika的专栏 240

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Oracle 数据类型,表空间(undo)、用户与权限,DCl、DDL、DML 语句、约束,表与视图注释、生僻字

目录 创建表空间 创建用户 用户授权 Oracle 数据类型 创建表 子查询复制表 修改表结构 & 删除表 五大约束 插入/更新/删除数据 exp/imp 导入导出数据 Oracle SQL 语句由如下命令组成: 数据定义语言( DDL ):包括 CREATE (创建)命令、 ALTER (修改)命令、 DROP (删除)命令等。 数据操纵语言( DML ):包括...

蚩尤后裔-汪茂雄 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Oracle 之创建和管理表

Oracle 之创建和管理表 常见的数据库对象: 对象 描述 表 基本的数据存储集合,由行和列组成 视图 重表中抽出的逻辑上相关的数据集合 序列 提供有规律的数据 索引 提高查询的效率 同义词 给对象起别名 表名和列名的定义规则: 必须以字母开头 必须在1-30个字符之间 必须只能包含A-Z ,a-z, 0-9,...

z_x_Qiang的博客 300

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Oracle基础笔记

SQL*Plus是一个非常重要的操作Oracle数据库的客户端工具,主要用于数据查询和数据处理。SQL*Plus工具具有以下功能:定义变量,编写SQL语句实现数据的插入、修改、删除、查询以及执行PL/SQL语句格式化查询结构、运算处理、保存、打印输出等显示任何一个表的字段定义,并实现与用户进行交互完成数据库几乎所有管理工作运行存储在数据库中的子程序或包以sysdba身份登录数据库实例,可以实现自动停启数据库实例(除此功能外,其余皆可由SQL Developer工具实现)

qq_40391945的博客 551

oracle中blob,clob,nclob区别

oracle中的blob类型,clob类型,nclob类型主要区别是什么?

mabide1234的博客 1721

ORACLE中CLOB介绍及使用

一、Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。 在Oracle Database中,VARCHAR2 字段类型,最大值为4000;PL/SQL中 VARCHAR2 变量类型,最大字节长度为32767。 当 VARCHAR2 容纳不下我们需要存储的信息时,就出来的Oracle的大数据类型LOB( Large

cuper_的博客 4万+

oracle对大对象类型操作:blob,clob,nclob

1.基本介绍 Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等。Oracle 9i realse2支持存储最大为4g的数据,oracle 10g realse1支持最大8到128万亿字节的数据存储,依赖于你的db的block size。 在plsql中可以申明的lob类型的变量如下:  BFILE        二进制文件,存...

qq_32445015的博客 1661

Oracle中BLOB、CLOB的读取和写入

基于SQL和Java的方式实现读取和插入BLOB、CLOB类型的数据,同时将读取的数据转换为字符串类型。

promise524的博客 1万+

Oracle数据库中,BLOB、CLOB 和 NCLOB的区别和使用场景及注意事项

BLOB主要用于存储二进制数据。CLOB用于存储单字节字符集的文本数据。NCLOB用于存储需要多字节字符集编码的文本数据,如Unicode。

kiingking的博客 3500
上一篇: SQL Server 的备份及恢复
下一篇: automation服务器不能创建对象”的问题的解决方案
OilAlways
博客等级 码龄17年 57粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值