前端之家收集整理的这篇文章主要介绍了
oracle删除字段中的空格、回车及指定字符,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
createorreplaceprocedurePROC_testis
--Description:删除字段中的指定字符(回车chr(13)、换行chr(10))
--ByLiChao
--Date:2016-03-01
colnamevarchar(20);--列名
cntnumber;--包含换行符的列的行数
v_sqlvarchar(2000);--动态sql变量begin
--读取表中的列
forcolin(selectcolumn_namefromuser_tab_columnswheretable_name='TEMP')loop
colname:=col.column_name;--替换换行符chr(10)
v_sql:='selectcount(1)fromtempwhereinstr('||colname||
',chr(10))>0';EXECUTEIMMEDIATEV_sqlintocnt;ifcnt>0then
v_sql:='updatetempset'||colname||'=trim(replace('||colname||
',chr(10),''''))'||'whereinstr('||colname||
',chr(10))>0';EXECUTEIMMEDIATEV_sql;commit;endif;--替换回车符chr(13)
v_sql:='selectcount(1)fromtempwhereinstr('||colname||
',chr(13))>0';EXECUTEIMMEDIATEV_sqlintocnt;ifcnt>0then
v_sql:='updatetempset'||colname||'=trim(replace('||colname||
',chr(13),chr(13))>0';EXECUTEIMMEDIATEV_sql;commit;
endif;--替换'|'chr(124)为'*'chr(42)
v_sql:='selectcount(1)fromtempwhereinstr('||colname||
',chr(124))>0';EXECUTEIMMEDIATEV_sqlintocnt;ifcnt>0then
v_sql:='updatetempset'||colname||'=replace('||colname||
',chr(124),chr(42))'||'whereinstr('||colname||
',chr(124))>0';EXECUTEIMMEDIATEV_sql;commit;
endif;endloop;endPROC_test;/
原文链接:https://www.f2er.com/oracle/209381.html