Clob字段中字符替换 处理
来源:互联网 发布:日剧台词 知乎 编辑:程序博客网 时间:2024/05/17 08:58
同事做网站处理,历史数据需要导入到新系统的数据库中,所以问题就来了,
以前下载地址的ip需要修改,但是这些都存在clob中,需要替换。
所以我就查资料,写了两个测试过程,解决了问题。
贴到这里共享给大家也方便自己查找
建表脚本:
过程脚本:REATE OR REPLACE PROCEDURE JUSTDOIT
IS
LnewClob CLOB:= EMPTY_CLOB;
LsrcClob CLOB := EMPTY_CLOB;
CURSOR CURSOR_TEMP_CATAN IS
-- select DESCRIPTION from PRODUCTS where ;
select DESCRIPTION from products where dbms_lob.instr(products.description,'92.16.16.164',1,1) > 0;
BEGIN
-- initalize the new clob
OPEN CURSOR_TEMP_CATAN;
LOOP
FETCH CURSOR_TEMP_CATAN INTO
LsrcClob;
EXIT WHEN CURSOR_TEMP_CATAN%NOTFOUND;
-- dbms_output.put_line('srcCloba');
dbms_output.put_line(LsrcClob);
REPLACECLOB_NEW(LsrcClob,'92.16.16.164','92.16.16.163',LnewClob);
dbms_output.put_line(LnewClob);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/
CREATE OR REPLACE PROCEDURE CATAN.replaceClob_new (
srcClob IN CLOB,
replaceStr IN VARCHAR2,
replaceWith IN VARCHAR2,
newClob OUT CLOB
)
IS
vBuffer VARCHAR2 (32767);
l_amount BINARY_INTEGER := 32767;
l_pos PLS_INTEGER := 1;
l_clob_len PLS_INTEGER;
BEGIN
newClob := EMPTY_CLOB;
-- initalize the new clob
dbms_lob.createtemporary(newClob,TRUE);
--newClob := EMPTY_CLOB;
--srcClob := EMPTY_CLOB;
l_clob_len := dbms_lob.getlength(srcClob);
WHILE l_pos < l_clob_len
LOOP
dbms_lob.read(srcClob, l_amount, l_pos, vBuffer);
IF vBuffer IS NOT NULL THEN
-- replace the text
vBuffer := replace(vBuffer, replaceStr, replaceWith);
-- write it to the new clob
dbms_lob.writeappend(newClob, LENGTH(vBuffer), vBuffer);
END IF;
l_pos := l_pos + l_amount;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/
问题:
一开始把整个处理写到一个过程里了,处理总有问题,不是丢字节,就是只能更新几条。
后来拆分后解决了。^_^!
- Clob字段中字符替换 处理
- 在Java中处理CLOB字段
- 在Java中处理CLOB字段
- java处理CLOB字段
- hibernate 处理 Clob字段
- JAVA CLOB字段处理
- oracle clob字段处理
- HIVE CLOB字段处理
- sql中替换字段的部分字符
- 数据库字段中某特定字符替换
- sql中替换字段中的某个字符
- MYSQL替换字段中敏感字符
- 如何用JSP处理Oracle中CLOB类型的字段
- 如何用JSP处理Oracle中CLOB类型的字段
- 在asp中处理oracle的clob字段
- 在asp中处理oracle的clob字段[转]
- oracle数据库中CLOB字段的处理问题
- 如何用jsp处理Oracle中CLOB类型的字段
- JS 中面向对象的几种写法
- html文件包含文件的几种方法(asp)
- 了解strust2拦截器的基本原理!
- 魔尊重楼
- 代码注释及易读性
- Clob字段中字符替换 处理
- 【SL学习】——嵌套元素(Nesting Elements)
- 解决中文乱码问题
- (转)windowsCE异常和中断服务程序初探 (转自 nasiry's blog)
- 一种产生socket write error的原因(sitemesh 相关)
- 淡淡的友情,淡淡的爱
- 新天地
- 大话田鼠世界的自然规律与IT业的关系
- DllImport的具体用法