ORACLE 将BLOB类型转成SQL语句插入

本文介绍了在Oracle数据库中如何实现BLOB类型与字符串之间的相互转换。提供了具体的方法实现细节,包括创建转换函数及使用RAWTOHEX进行插入操作。此外,还给出了将BLOB类型数据导出为SQL语句的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比如有张表结构如下:

create table TestBlob
(
blb BLOB
)

首先考虑到 如何将表中的BLOB类型转成字符串,我们可以通过创建一个方法:


Create Or Replace Function BlobToVarchar (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 BlobToVarchar;


其次呢,如何将字符串转成BLOB类型呢,ORACLE中有提供rawtohex方法,如:

INSERT INTO TestBlob VALUES(RAWTOHEX('测试测试测试')); --即可将字符串类型的数据插入到BLOB类型的表中。



那么现在大家应该知道怎么将某个表中的BLOB类型导成SQL语句了吧。。 举个例子,把TestBlob表通过一条语句导出成SQL语句。



select 'INSERT INTO TestBlob (rawtohex(replace('''||replace(Blob_To_Varchar(blb),'''','"')||''',''"'','''''''')));' from TestBlob



然后将结果集的数据拷贝出来即可。



容易吧!!嘻嘻

=============================================
http://hi.baidu.com/blake421/item/ee619f33ffdb0886c3cf2910
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值