大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
SQL:UPDATE A_TableName set username=substr(username ,0,instr(username ,'KG',-1) Where username like '%KG%';
为永善等地区用户提供了全套网页设计制作服务,及永善网站建设行业解决方案。主营业务为成都做网站、网站建设、外贸营销网站建设、永善网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
实现思路:截取到特定的字符串(本sql以”KG“为例)之前的内容重新赋值给本列。
解释:A_TableName 为表名,where后面的是筛选的条件,instr是找到username中 从右边(-1为右边)找到第一个KG的位置(通过数字来表示),substr(username ,start,length)是截取username中从 0开始截取长度为length的字符串。
废话不多说了,直接给大家贴代码了,具体代码如下所示:
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
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
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
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删除字段中的空格、回车及指定字符的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
用替换(Ctrl+H),查找字为固定字符,替换为不输入任何值,点击全部替换。
示例,把下表中的百度批量删除。