当前位置:  数据库>oracle

Oracle数据库blob类型转换为varchar2

    来源: 互联网  发布时间:2017-05-23

    本文导语: 据说没有数据的时候可以直接转换,试过了也可以,但是一般都是由数据了才会去修改,麻烦产生,直接修改不了,只能通过函数来解决; 总的思路是:创建临时字段B→将要转换的字段A放在临时字段中(使用函数转换)→删除...

据说没有数据的时候可以直接转换,试过了也可以,但是一般都是由数据了才会去修改,麻烦产生,直接修改不了,只能通过函数来解决;

总的思路是:创建临时字段B→将要转换的字段A放在临时字段中(使用函数转换)→删除A→将B名称改为A

创建转换函数

create or replace FUNCTION blob_to_varchar (blob_in IN BLOB)
RETURN VARCHAR2
IS
v_varchar VARCHAR2(2000);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 2000;

BEGIN
if DBMS_LOB.GETLENGTH(blob_in) is null then
return empty_clob();
end if;
DBMS_OUTPUT.put_line('TEST:' || CEIL(DBMS_LOB.GETLENGTH(blob_in)));
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),'AMERICAN_THE NETHERLANDS.UTF8', 'AMERICAN_THE NETHERLANDS.UTF8'));
v_start := v_start + v_buffer;
END LOOP;
RETURN v_varchar;
end blob_to_varchar;

开始修改表数据:

ALTER TABLE requestion ADD INTRODUCE_TEMP VARCHAR2(2000);
UPDATE requestion SET INTRODUCE_TEMP=blob_to_varchar(INTRODUCE);
ALTER TABLE requestion DROP COLUMN INTRODUCE;
ALTER TABLE requestion RENAME COLUMN INTRODUCE_TEMP TO INTRODUCE;
Drop FUNCTION blob_to_varchar;
这个过程中可能会出现乱码问题,需要调整下编码,也就是红色部分,所有建议先执行完绿色部分,看看编码是否对再执行蓝色部分代码

当然,如果blob转换成varchar的函数还需要的话就不要删除了


    
 
 

您可能感兴趣的文章:

  • 浅析Oracle中char和varchar2的区别
  • oracle中 VARCHAR2是什么数据类型
  • 不能把几百个以上的汉字插入oracle varchar2类型的问题!
  • jsp显示oracle中varchar2类型字段 在线等待
  • Oracle中字符集的类型决定varchar2的字符长度
  • 在oracle里如何将String转换成Date?????
  • 请问:ORACLE中的数据取出来后,需不需要进行一定的转换才能变为C语言的数据类型啊?
  • ORACLE 毫秒与日期的相互转换示例
  • 用java怎样实现oracle数据库表和excel数据表的转换
  • Oracle与FoxPro两数据库的数据转换步骤
  • oracle SCN跟TIMESTAMP之间转换
  • Oracle下时间转换在几种语言中的实现
  • 关于tomcat4.0.1+JDK1.3+ORACLE+JDBC中字符编码的转换问题。
  • MySQL转换Oracle的需要注意的七个事项
  • MySQL数据库向Oracle转换时注意若干问题
  • Oracle Number型数值存储与转换的实现详解
  • 讲解Oracle中的Clob与String类型转换
  • 将mysql转换到oracle必须了解的50件事
  • oracle中to_date详细用法示例(oracle日期格式转换)
  • ORACLE常用数值函数、转换函数、字符串函数
  • Oracle CBO几种基本的查询转换详解
  • Oracle to_char 日期转换字符串语句分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ORACLE数据库常用字段数据类型介绍
  • oracle中的空类型与c语言的空类型相匹配吗?
  • 关于Oracle BLOB类型,一个String字符怎么写入BLOB字段?
  • Oracle中查看某列数据类型
  • 测试添加Oracle中Blob数据类型对象
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • oracle中怎么没有boolean类型的字段?应该用什么代替?
  • 如何向oracle库中字段类型是date的添加数据
  • jsp中在oracle中查询日期类型时sql语句该怎么写啊?
  • 怎样将当前时间写到Oracle中date类型的字段中!!!!!!!!!!!!
  • 急!急!oracle 中 long 类型在 tomcat 中的问题
  • Oracle里long类型
  • Oracle中的Raw类型解释
  • 我要向oracle中插入大文本,用的是lang类型的字段,但是只能插3000字,再多就抱错,说我字符串过长。谁遇到过此问题?
  • Oracle返回表类型的自定义函数
  • 在Oracle的函数中,返回表类型的语句
  • 高分求救:谁用过JSP处理ORACLE数据库中的LONG RAW类型字段
  • 急死了! oracle中long数据类型问题! 重酬!!!
  • 关于jsp连接oracle char类型数据显示问题
  • oracle的blob类型读写文件,help me
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,