使用oracle压缩blob对象



1、使用oracle压缩blob对象

l_blob := utl_compress.lz_compress(l_blob);

2、将blob转换成clob

FUNCTION blob_to_clob(blob_in IN BLOB) RETURN CLOB AS

v_clob    CLOB;

v_varchar VARCHAR2(32767 );

v_start   PLS_INTEGER := 1 ;

v_buffer  PLS_INTEGER := 32767 ;

tmp_num   NUMBER;

BEGIN

dbms_lob.createtemporary(v_clob, TRUE);

tmp_num := ceil(dbms_lob.getlength(blob_in) / v_buffer);

IF tmp_num
> 0 THEN

--防止传入的BLOB为NULL或长度为0时引发错误

FOR i IN 1 ..
tmp_num LOOP

v_varchar := utl_raw.cast_to_varchar2(dbms_lob.substr(blob_in,

v_buffer,

v_start));

dbms_lob.writeappend(v_clob, length(v_varchar), v_varchar);

v_start := v_start + v_buffer;

END LOOP ;

END IF ;

RETURN v_clob;

END blob_to_clob;

3、将clob数据插入文件中

dbms_xslprocessor.clob2file(l_clob, p_dir_name, p_file_name);

时间: 2024-12-09 13:45:28

使用oracle压缩blob对象的相关文章

使用SSH操作Oracle中BLOB大对象

package entity; /** * Bigobject entity. @author MyEclipse Persistence Tools */ public class Bigobject implements java.io.Serializable { // Fields private Integer id; private byte[] tblob; private String filename; // Constructors /** default construct

html + js 实现图片上传,压缩,预览及图片压缩后得到Blob对象继续上传问题

先上效果 上传图片后(设置了最多上传3张图片,三张后上传按钮消失) 点击图片放大,可以使用删除和旋转按钮 (旋转功能主要是因为ios手机拍照后上传会有写图片被自动旋转,通过旋转功能可以调正) html页面 需要引入weui.min.css 不然没法渲染样式, 将下面的代码放在需要上传文件的地方就行了,如果不需要图片旋转功能, 可以直接删掉那个div, 改不改js无影响 addPhoto.html <!--图片缩略图--> <div class="weui-cells weui-

JS 之Blob 对象类型

原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. oracle 中也有类似的栏位类型. [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际上 file 对象只是 blob 对象的一个更具体的版本,blob 存储着大量的二进制数据,并且 blob 的 size 和 type 属性,都会被 file 对象所继承. 所

Oracle Insert BLOB

How to Insert Blobdata(image, video) intooracle BLOB size In this post it is shown how I can insert Blob data link image video into oracle database and also how I can determine the size of the BLOB data from oracle. 1)Create Directory Where BLOB resi

java操作oracle的blob,clob数据

一.区别和定义 LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列 LONG RAW: 可变长二进制数据,最长2G CLOB:  字符大对象Clob 用来存储单字节的字符数据 NCLOB: 用来存储多字节的字符数据 BLOB: 用于存储二进制数据 BFILE: 存储在文件中的二进制数据,这个文件中的数据只能被只读访.但该文件不包含在数据库内. bfile字段实际的文件存储在文件系统中,字段中存储的是文件定位指针.bfile对o

[JS进阶] JS 之Blob 对象类型

什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. oracle 中也有类似的栏位类型. 在 [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际上 file 对象只是 blob 对象的一个更具体的版本,blob 存储着大量的二进制数据,并且 blob 的 size 和 type 属性,都会被 file 对象所继承. 所以, 在大多数情况下,blob 对象和 file 对象可以用在同一个地方,例如,可以使用 FileReader

oracle表和对象基础维护笔记

一 oracle表和对象基础维护笔记 1.1 常见概念 1.2 创建表 1.3 表常见字段 1.4 增加或删除字段 1.5 更新字段 1.6 重命名表 1.7 改变表存储表空间和存储参数 1.8 删除表 1.9 表注释 1.10 分区表的管理 1.11 常用数据字典 二 约束 2.1 非空约束 2.2 主键约束 2.3 唯一性约束 2.4 外键约束 2.5 约束管理 三 索引 3.2 创建索引 3.3 改变索引存储参数 3.4 重建索引 3.5 索引碎片整理 3.6 删除索引 3.7 数据字典

oracle中Blob和Clob类型的区别

一.oracle中Blob和Clob类型的区别BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图片.文件.音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去.而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便. BLOB全称为二进制大型对象(Binary Large Object).它用于存储数据

Base64转换为blob对象

在开发过程中有时候需要针对base64的编码转换为blob对象,js中转化方法如下 其中 nowFrame为base64对象 var arr = nowFrame.split(','); var mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } var b