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删除字段中的空格、回车及指定字符的实例代码的主要内容,如果未能解决你的问题,请参考以下文章