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

Blob转varchar2:

长度小于2000的:

Convert(Utl_Raw.Cast_To_Varchar2(A.Photodata), 'utf8', 'zhs16gbk')

长度大于2000:

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;

varchar2Blob 注意varchar2的最大长度是4000,超过的话转换会出现问题,只出现最后面的部分。中文还没尝试过。

CREATE OR REPLACE FUNCTION V2B(l_var IN varchar2) RETURN BLOB IS

c_clob CLOB := to_clob(l_var);

b_blob BLOB;

b_len number := dbms_lob.getlength(c_clob);

b_offset NUMBER := 1;

c_offset NUMBER := 1;

c_amount INTEGER := DBMS_LOB.lobmaxsize;

b_csid NUMBER := DBMS_LOB.default_csid;

lang_ctx INTEGER := DBMS_LOB.default_lang_ctx;

warning INTEGER;

BEGIN

if b_len > 0 then

DBMS_LOB.createtemporary(b_blob, TRUE);

DBMS_LOB.OPEN(b_blob, DBMS_LOB.lob_readwrite);

DBMS_LOB.convertToBlob(b_blob,

c_clob,

c_amount,

b_offset,

c_offset,

b_csid,

lang_ctx,

warning);

else

select empty_blob() into b_blob from dual;

end if;

RETURN b_blob;

END V2B;

CLOB转Varchar2 to_char(substr(mw.context_,1,1000)) 这个是oracle自带的

CLOB的列可以直接放varchar属性的数据,这里就不列出转换方法

oracle blob 转 varchar2,oracle varchar2与clob、blob互转相关推荐

  1. oracle里面的long,long raw,raw,clob,blob区别

    ORACLE LOB类型提供了BFILE.BLOB.CLOB.NCLOB让我们来存储最大尺寸有4G的无结构的数据块(例如:文本.图像.声音和视频等).并且它们右以以高效的.任意的和分段操作的方式存取数 ...

  2. oracle修改表字段从varchar2(4000)为clob

    oracle修改表字段从varchar2(4000)为clob (原因varchar2(4000)不够用了) 1.临时表存数据 2.删原表数据,修改字段类型为long,才能再改为clob 3.导回数据 ...

  3. oracle修改clob值,oracle修改字段类型由varchar2修改为clob类型

    模拟情景,表:batchintfloadlog,要修改字段:resultinfo,字段 从原来的 varchar2 修改为 clob 1.假设要修改字段数值为空,则可以直接修改:​ 可是发现如下错误: ...

  4. Oracle Varchar2 字段转成Clob字段

    为什么80%的码农都做不了架构师?>>>    今天碰到一个问题,想将oracle数据库的varchar 字段修改为 clob 字段,先开始直接修改是报错的,后来搜索资料才知道需要先 ...

  5. 使用JDBC操作基于Oracle的CLOB,BLOB字段类型

    转载至程式先锋技术维客[url]www.javabiz.cn[/url] 先来看看两种LOB类型的主要区别: CLOB 表示Character LOB (字符LOB)  它可以存储大量的字符数据. B ...

  6. oracle数据按条件清表,ociuldr v2.1 支持CLOB,BLOB数据类型

    1.dcba的ociuldr工具 ociuldr这个工具初始是由dcba开发的,用的是v7版的oci函数库 目的是完成导出Oracle中的数据到文本文件这样的功能 这个工具流传的非常广 详细介绍可以参 ...

  7. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

    [在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别  CHAR为定长的字段,最 ...

  8. oracle blob类型在,Oracle blob类型 实践

    Oracle blob类型 实践 BLOB的含义 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制 ...

  9. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示

    JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...

  10. oracle将其他字段类型改为clob类型方法

    oracle将其他字段类型改为clob类型方法 FIELD_INSTANCE 表名 FIELD_STRING_VALUE 字段名 第一步:添加一个clob类型的字段 alter table FIELD ...

最新文章

  1. My deep learning reading list
  2. window之hosts
  3. python实例变量初始化_Python – 应该在__init__中初始化所有成员变量
  4. IntelliJ IDEA——数据库集成工具(Database)的使用
  5. 论坛模板php,php论坛
  6. Learn Python 014: Funtions
  7. leetcode-Combinations 复习复习排列组合
  8. 多线程之旅七——GUI线程模型,消息的投递(post)与处理
  9. 查看系统中支持CUDA的设备数量和属性---deviceQuery示例
  10. linux导出日志命令_Linux中的导出命令
  11. 用PS去掉图片中的文字
  12. 推荐几款程序员值得拥有的写文档工具
  13. c语言编译bss和data,深入理解BSS段与data段的区别
  14. JavaBean字段防止非空赋值
  15. 快读与快输(读入优化与输出优化、QIO优化)
  16. 精进1-如何反思 by采铜
  17. 同城双活与异地多活架构分析
  18. Xcode9点击对象跳转
  19. 五、伊森商城 前端基础-Vue v-on 事件修饰符 按键修饰符 v-for v-if 和v-show v-else和v-else-if p24
  20. 预告|2022 星策 Summit 企业数智化转型论坛议程公布!

热门文章

  1. IDEA运行java文件环境配置
  2. 有关嵌入式的 github
  3. TortoiseSVN文件夹没有绿色对号(√)的解决方案
  4. 浅谈人机关系在生活中的应用
  5. 管理信息系统期末测试题
  6. Java多线程编程实战指南(核心篇)读书笔记(二)
  7. MathType与Office公式编辑器有什么不同
  8. 联想T110 8G优盘 安国AU6983主控量产成功
  9. Qt qml listview刷新
  10. SOJSONV5解密,SOJSON.V5解密方法,SOJSONV5解密分析