Oracle删除字段中的空格、回车及指定字符的实例代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle删除字段中的空格、回车及指定字符的实例代码相关的知识,希望对你有一定的参考价值。

参考技术A 废话不多说了,直接给大家贴代码了,具体代码如下所示:
create
or
replace
procedure
PROC_test
is
--Description:删除字段中的指定字符(回车chr(13)、换行chr(10))
--By
LiChao
--Date:2016-03-01
colname
varchar(20);
--列名
cnt
number;
--包含换行符的列的行数
v_sql
varchar(2000);
--动态SQL变量
begin
--读取表中的列
for
col
in
(select
column_name
from
user_tab_columns
where
table_name
=
'TEMP')
loop
colname
:=
col.column_name;
--替换换行符chr(10)
v_sql
:=
'select
count(1)
from
temp
where
instr('
||
colname
||
',chr(10))>0
';
EXECUTE
IMMEDIATE
V_SQL
into
cnt;
if
cnt
>
0
then
v_sql
:=
'update
temp
set
'
||
colname
||
'=trim(replace('
||
colname
||
',chr(10),''''))'
||
'where
instr('
||
colname
||
',chr(10))>0
';
EXECUTE
IMMEDIATE
V_SQL;
commit;
end
if;
--替换回车符chr(13)
v_sql
:=
'select
count(1)
from
temp
where
instr('
||
colname
||
',chr(13))>0
';
EXECUTE
IMMEDIATE
V_SQL
into
cnt;
if
cnt
>
0
then
v_sql
:=
'update
temp
set
'
||
colname
||
'=trim(replace('
||
colname
||
',chr(13),''''))'
||
'where
instr('
||
colname
||
',chr(13))>0
';
EXECUTE
IMMEDIATE
V_SQL;
commit;
end
if;
--替换'|'
chr(124)
为'*'
chr(42)
v_sql
:=
'select
count(1)
from
temp
where
instr('
||
colname
||
',chr(124))>0
';
EXECUTE
IMMEDIATE
V_SQL
into
cnt;
if
cnt
>
0
then
v_sql
:=
'update
temp
set
'
||
colname
||
'=replace('
||
colname
||
',chr(124),chr(42))'
||
'where
instr('
||
colname
||
',chr(124))>0
';
EXECUTE
IMMEDIATE
V_SQL;
commit;
end
if;
end
loop;
end
PROC_test;
/
以上所述是小编给大家介绍的Oracle删除字段中的空格、回车及指定字符的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

以上是关于Oracle删除字段中的空格、回车及指定字符的实例代码的主要内容,如果未能解决你的问题,请参考以下文章

oracle中怎样去除字符的前后空格

oracle数据库去除换行、空格、回车字符

oracle中去掉回车换行空格的方法详解

sql server 2005 删除字段中间的空格

oracle如何去除某个字段中两边的空格

oracle中的trim函数