CREATE OR REPLACE 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;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
create or replace function c2b( c IN CLOB) return BLOB
IS
pos PLS_INTEGER := 1;
buffer RAW( 32767 );
res BLOB;
lob_len PLS_INTEGER := DBMS_LOB.getLength( c );
BEGIN
DBMS_LOB.createTemporary( res, TRUE );
DBMS_LOB.OPEN( res, DBMS_LOB.LOB_ReadWrite );
LOOP
buffer := UTL_RAW.cast_to_raw( DBMS_LOB.SUBSTR( c, 16000, pos ) );
IF UTL_RAW.LENGTH( buffer ) > 0 THEN
DBMS_LOB.writeAppend( res, UTL_RAW.LENGTH( buffer ), buffer );
END IF;
pos := pos + 16000;
EXIT WHEN pos > lob_len;
END LOOP;
RETURN res; -- res is OPEN here
END c2b;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CREATE OR REPLACE FUNCTION CONVERTTOBLOB(SRC IN LONG) RETURN BLOB IS
D_OFFSET INTEGER := 1;
S_OFFSET INTEGER := 1;
B_CSID NUMBER := 0;
LANG_C INTEGER := 0;
WARN INTEGER := 0;
LEN INTEGER := 0;
B BLOB;
BEGIN
DBMS_LOB.CREATETEMPORARY(LOB_LOC => B, CACHE => TRUE);
LEN := DBMS_LOB.GETLENGTH(TO_CLOB(SRC));
DBMS_LOB.CONVERTTOBLOB(DEST_LOB => B,
SRC_CLOB => TO_CLOB(SRC),
AMOUNT => LEN,
DEST_OFFSET => D_OFFSET,
SRC_OFFSET => S_OFFSET,
BLOB_CSID => B_CSID,
LANG_CONTEXT => LANG_C,
WARNING => WARN);
RETURN B;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
分享到:
相关推荐
标题"Clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle"暗示了这个压缩包包含的资源是关于使用Java操作Oracle数据库中的CLOB和BLOB字段的示例代码。这个压缩包可能包含了一个名为`clob-blob.java`...
CLOB、BLOB 与 CLOB 与 BLOB 的区别 CLOB(Character Large OBject)是一种数据库类型,用于存储大型字符对象。它是 SQL 类型,用于存储字符大对象(Character Large Object),将字符大对象存储为数据库表某一行中...
在示例代码中,`blob_to_clob`函数首先创建了一个临时的CLOB变量`v_clob`。然后,通过`DBMS_LOB.GETLENGTH`获取BLOB的总长度,计算出需要处理的次数`tmp_num`,确保每次处理不超过32767个字符,这是`VARCHAR2`类型的...
在数据库编程领域,CLOB(Character Large Object)和BLOB(Binary Large Object)是用于存储大量文本和二进制数据的数据类型。在DELPHI中,处理这些大型对象时需要特殊的技术和策略。本篇文章将深入探讨DELPHI中...
标题“jdbc_blob_clob.rar”暗示了这个压缩包文件包含的内容与Java Database Connectivity (JDBC) 中处理Blob和Clob对象相关的知识。Blob是Binary Large Object的缩写,用于存储大块二进制数据,如图片、音频或视频...
rtn = clob.getSubString((long) 1, (int) clob.length()); return rtn; } else if ("weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB".equals(in.getClass().getName())) { Method method = in.getClass()....
quartz-2.2.3版本集群部署方式,需要创建的11张表的sql 文件,很多文章没有分享,一定要注意版本,不同的版本sql脚本不同
标签中的“c++__oracle_blob”强调了使用C++进行BLOB操作,而“oracle_blob_oracle”则表明了这是关于Oracle数据库的BLOB操作。 总之,Oracle的BLOB类型提供了处理大量二进制数据的能力,而C++的OCI库为开发者提供...
这包括`sqlite3_open()`打开数据库连接,`sqlite3_exec()`或`sqlite3_prepare_v2()`执行SQL语句,以及`sqlite3_blob_open()`, `sqlite3_blob_write()`, `sqlite3_blob_read()`等处理BLOB数据的函数。在插入BLOB时,...
标题中的"blob-pxa270.rar_UP_blob_blob pxa270_pxa270 blob_pxa270 bootload"暗示了这是一份与UP Board(一个基于Intel PXA270处理器的开发板)相关的固件或者引导加载程序(bootloader)。"UP Blob"通常指的是为UP...
`jsp1.rar_jsp blob_jsp 图片_mysql blob_图片 MySQL`这个标题和描述指向了一个具体的场景:使用JSP(JavaServer Pages)从MySQL数据库中读取存储为BLOB(Binary Large Object)类型的图片数据。 首先,我们来理解...
"pbcomm_blob_modi_recieve_PB串口发送指令_"这个标题暗示了我们讨论的是关于如何在PowerBuilder 9.0(PB9.0)中实现串口数据的发送和接收。下面我们将详细探讨相关的知识点。 首先,我们需要了解PowerBuilder(PB...
在"Blob_Tracking_Modules.doc"文档中,可能包含了关于如何在OpenCV中实现Blob检测和跟踪的具体方法、代码示例以及相关算法的详细解释。常见的Blob跟踪算法有Kalman滤波器、Mean Shift、CamShift等,它们利用概率...
首先,BLOB是一个用于存储大块二进制数据的数据类型,包括四种变体:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它们的区别主要在于能存储的最大数据量。在MySQL中,你可以创建一个包含BLOB字段的表来存储这些非结构化...
g++ -o blob_demo blob_demo.cpp -I /home/bigmarshal/Documents/deep_learning/caffe/include/ -D CPU_ONLY -I /home/bigmarshal/Documents/deep_learning/caffe/.build_release/src/ -L /home/bigmarshal/...
《Python库auto_blob_saver-0.1-py3.8.egg详解》 Python作为一门强大且广泛应用的编程语言,拥有丰富的第三方库资源。在众多的Python库中,"auto_blob_saver"是一个值得一提的工具,它为开发者提供了一种便捷的方式...
在本案例中,"blob_append:BLOB_APPEND功能文档"指的是一个特定的数据库函数,它允许用户向BLOB字段追加数据,而不仅仅是覆盖原有内容。 `BLOB_APPEND`函数可能是一个自定义的SQL函数,或者某些数据库管理系统(如...
在本案例中,“blob.zip_blob_blob detection”可能是一个包含代码和数据的压缩包,旨在实现基于Harris角点检测的Blob检测算法。Harris角点检测是一种流行的方法,用于在图像中寻找局部特征,这些特征对平移、缩放和...
6. **安装与使用**:使用`pip`可以直接安装`textblob_de`的轮子文件,命令为`pip install path/to/textblob_de-0.3.0-py2.py3-none-any.whl`。安装完成后,就可以在Python代码中导入并使用`textblob_de`,享受它带来...
标题中的"PyPI 官网下载 | core_module_blob_host_app-1.0.0.tar.gz"揭示了我们正在处理一个从Python Package Index (PyPI) 下载的软件包。PyPI是Python社区官方的第三方软件包仓库,它允许开发者发布、分享和安装...