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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中怎样去除字符的前后空格相关的知识,希望对你有一定的参考价值。

trim()删除字符串两边的空格,ltrim()删除字符串左边的空格, rtrim()删除字符串右边的空格;
trim('字符1' from '字符串2') 分别从字符2串的两边开始,删除指定的字符1
select trim (' ' from ' acbdefg ') from dual;输出结果为abcdefg 左右两端没有空格
参考技术A trim();括号内是你的字符串

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字段的值为空格

oracle中能去掉数据前后空格的函数是啥?

JAVA中如何去除字符串前后的全角空格(当中保留)?

怎么去除一个字符串的前后空格