Oracle数据库中的Blob字段转成字符串的函数:
1、Utl_Raw.Cast_To_Varchar2(blob_var)只支持Blob长度小于2000的字段:
--Mysql
Select Count(*) From Score_News_Online A Where A.Onlineflag=1 And Trim(Unhex(Hex(A.Onetitle)))=Trim(Unhex('D5AEC8A8'))
And A.Newstype='news_sc_newstype_yxdt' And (A.Asstitle Between '10000000' And '50000000')
--Oracle
Select Count(*) From Bp_Winner_Ticketphoto A Where Convert(Utl_Raw.Cast_To_Varchar2(A.Photodata), 'utf8', 'zhs16gbk')='债权'
And A.Newstype='news_hub_newstype_yxdt' And (A.Asstitle Between '10000000' And '50000000')
2、Blob_To_Varchar 自定义函数支持Blob长度大于2000的字段:
--Only for Oracle 注意字段数据类型转换
Create Or Replace Function Blob_To_Varchar (Blob_In In Blob) Return Varchar2
Is
V_Varchar Varchar2(4000);
V_Start Pls_Integer := 1;
V_Buffer Pls_Integer := 4000;
Begin
If Dbms_Lob.Getlength(Blob_In) Is Null Then
Return '';
End If;
For I In 1..Ceil(Dbms_Lob.Getlength(Blob_In) / V_Buffer) Loop
--当转换出来的字符串乱码时,可尝试用注释掉的函数
--V_Varchar := Utl_Raw.Cast_To_Varchar2(Utl_Raw.Convert(Dbms_Lob.Substr(Blob_In, V_Buffer, V_Start),'SIMPLIFIED CHINESE_CHINA.ZHS16GBK', 'AMERICAN_THE NETHERLANDS.UTF8'));
V_Varchar := Utl_Raw.Cast_To_Varchar2(Dbms_Lob.Substr(Blob_In, V_Buffer, V_Start));
V_Start := V_Start + V_Buffer;
End Loop;
Return V_Varchar;
End Blob_To_Varchar;
分享到:
相关推荐
在上述代码中,`OracleBlobControl`类包含了数据库连接字符串`constr`和临时文件路径`tempFilePath`的定义。通过`OracleConnection`类创建数据库连接,并通过`init`方法初始化连接和命令对象。 #### 2. 保存Blob...
### Oracle Blob转换Clob #### 知识点一:Oracle Blob与Clob的基本概念 - **Blob (Binary Large Object)**:在Oracle数据库中,Blob类型用于存储大量的二进制数据,如图像、视频或文档等非结构化数据。 - **Clob ...
Oracle SQL 函数进行BLOB转换Varchar2
`UTL_RAW.CAST_TO_VARCHAR2`是Oracle提供的一个包中的函数,用于将RAW或BLOB类型的二进制数据转换为VARCHAR2字符串类型。这一步骤对于将BLOB转换为CLOB至关重要,因为CLOB本质上是一种字符数据类型,而不能直接与二...
分享在JAVA中Blob转换成String实例
本文将详细介绍如何在Oracle中实现CLOB字段到字符串类型的转换,并探讨其中的关键技术和注意事项。 #### 一、CLOB概述 1. **定义**: - `CLOB`是Oracle数据库提供的一种特殊的数据类型,用于存储大文本数据。 - ...
- **分块读取**:由于`VARCHAR2`类型的限制,需要分块读取Blob数据,并将其拼接成完整的字符串。 - **性能考虑**:当处理大量或非常大的字符串时,需注意对性能的影响。在实际应用中,可以考虑优化读取逻辑,比如...
2. Base64编码:将图片二进制数据转换成ASCII字符串,方便在网络上传输或存储。 3. 加密算法:如AES、DES等,用于对Base64编码后的字符串进行加密,提高数据的安全性。 4. 密码学:密码的生成、验证与管理,可能涉及...
通常,我们可以将BLOB数据转化为HEX字符串或Base64编码,以便在文本格式下传输。 3. **数据转换**:由于SQL SERVER的IMAGE字段不再推荐使用,我们可能需要将数据转换为VARBINARY(MAX)类型。如果是从HEX字符串或Base...
在实际应用中,我们可能需要将JSON字符串存储在`CLOB`或`BLOB`类型的列中,然后利用Oracle的JSON函数进行读取和操作。例如,`JSON_OBJECT_T`和`JSON_ARRAY_T`是两个实用的类型,它们分别代表JSON对象和数组,可以...
在Oracle数据库中,LongRaw和Blob都是用于存储大对象(LOB)的数据类型,但它们有各自的特点和适用场景。在某些情况下,可能需要将LongRaw字段转换为Blob字段,这通常是因为Blob提供更好的管理和处理大型二进制数据...
综上所述,这段SQL语句可以帮助我们找到存储在Blob字段中的JPEG图片,并通过解析特定的十六进制字符串来获取该图片的尺寸。需要注意的是,这种做法依赖于图片尺寸信息在Blob数据中的固定位置,如果位置发生变化,则...
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
1. **DataExport.exe.config**:这是应用程序的配置文件,包含运行时环境的设置,如连接字符串、应用程序配置选项等。 2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET ...
- **图片转二进制/字符串**:对图片进行读取,如果是使用`CLOB`,需要将图片转换为Base64字符串;如果是`BLOB`,则直接读取二进制流。 - **插入数据**:通过SQL插入语句,将转换后的图片数据插入到相应的字段中。 ...
在Oracle数据库系统中,BLOB(Binary Large Object)是一种数据类型,用于存储大量的二进制数据,如图像、音频文件或任何非结构化的文本数据。本教程将详细讲解如何使用C++与Oracle数据库进行交互,特别是针对BLOB...
这个请求体包含了固定的头部信息和动态的数据部分,即传入的字符串参数`AS_STR`。 ```plsql L_STRING1 := L_STRING1|| '...
CLOB 字段可以存储大量的 Unicode 字符串数据,并提供了高效的读写机制。 将 Image 类型数据导出到 Oracle 的 CLOB 字段中 为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java...
在Oracle数据库中,有时我们需要处理超出标准VARCHAR2类型限制的超长字符串。本文将深入探讨这个问题,以及如何解决Oracle中的超长字符串问题。 首先,Oracle的VARCHAR2类型最多可以存储4000个字节的单字节字符,...
- 创建数据库连接:使用`OracleConnection`类创建数据库连接,并设置正确的连接字符串。 - 打开连接:调用`Open()`方法打开数据库连接。 - 创建命令对象:使用`OracleCommand`类,设置SQL插入语句,例如`INSERT ...