Oracle中Blob转换成Clob
发布时间:2020-12-12 15:50:49 所属栏目:百科 来源:网络整理
导读:转载:http://blog.sina.com.cn/s/blog_59ca2c2a0101ilv1.html 假如tab表中的c_xml字段原来是blob类型,我们要将其转换为clob类型,如果表中有数据的话,是无法直接通过alert语句去修改的。通过以下方法可以将blob类型的字段改为clob类型。 首先在oracle中创
转载:http://blog.sina.com.cn/s/blog_59ca2c2a0101ilv1.html 假如tab表中的c_xml字段原来是blob类型,我们要将其转换为clob类型,如果表中有数据的话,是无法直接通过alert语句去修改的。通过以下方法可以将blob类型的字段改为clob类型。 首先在oracle中创建一个function,代码如下: --先创建Blog转换为Clob的function CREATE OR REPLACE FUNCTION BlobToClob(blob_in IN BLOB) RETURN CLOB AS 然后创建备份表,以防数据丢失。代码如下: create table tab2 AS SELECT * FROM tab; 删除表中blob列,添加clob列。代码如下: -- 删除c_xml列 alter table tab drop column c_xml; -- 添加c_xml列,类型为clob alter table tab add c_xml clob; 最后将备份出去的数据恢复回来。代码如下: --在命令模式下执行如下代码,将备份到tab2中的c_xml中的数据恢复到tab中来 DECLARE task_id NUMBER; sour_blob BLOB; dest_clob CLOB; userRow tab2%rowtype; cursor userRows is select * from tab2; BEGIN for userRow in userRows loop task_id := userRow.n_task_id; sour_blob := userRow.c_xml; dest_clob := blobtoclob(sour_blob); UPDATE tab SET c_xml = dest_clob WHERE n_task_id = task_id; COMMIT; end loop; END; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |