189 8069 5689

oracle怎么替换所有 oracle数据库替换

怎么替换oracle数据库中所有的某个特定字符串

可以通过replace函数来获取特定字符串后,进行字段更新实现:

在路南等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设 网站设计制作按需求定制网站,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸网站制作,路南网站建设费用合理。

sql:update tablename set name=replace(name,'替换前字段','替换后字段') where name like '%替换前字段%'。

上面的sql语句的意思是替换tablename中name字段的“替换前字段“为”替换后字段“, where后面的语句是筛选出字段中带有”替换前字段“的name值。

oracle字段值批量替换

1)instr()函数的格式  (俗称:字符查找函数)

格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串)

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )   /   instr(源字符串, 目标字符串, 起始位置, 匹配序号)

解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置,-1表示从尾部开始倒数第1个)开始在string1检索,检索第nth_appearance(几)次出现string2。

SELECT A2.id,A1.name 

from A2 left join

A1 on A2.codeall=A1.code

where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 0

union all

SELECT A2.id,A11.name||','||A12.name 

from A2 left join

A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join

A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',-1,1)-1)=A12.code

where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 1

union all

SELECT A2.id,A11.name||','||A12.name ||','||A13.name 

from A2 left join

A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join

A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code

A1 A13 on substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',-1,1)-1)=A13.code

where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 2

union all

SELECT A2.id,A11.name||','||A12.name ||','||A13.name ||','||A14.name 

from A2 left join

A1 A11 on substr(A2.codeall,1,instr(A2.codeall,',')-1)=A11.code left join

A1 A12 on substr(A2.codeall,instr(A2.codeall,',')+1,instr(A2.codeall,',',1,2)-1)=A12.code

A1 A13 on substr(A2.codeall,instr(A2.codeall,',',1,2)+1,instr(A2.codeall,',',1,3)-1)=A13.code

A1 A14 on substr(A2.codeall,instr(A2.codeall,',',1,3)+1,instr(A2.codeall,',',-1,1)-1)=A14.code

where LENGTHB(codeall)-LENGTHB(replace(codeall,',','')) = 3

oracle有没有方法把数据库表中的字段的所有数据中的某个字母或数字修改或替换

oracle中可以通过全文检索替换来实现单个字符的替换。

设置全文检索

步骤步骤一:检查和设置数据库角色

首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能 (10G默认安装都有此用户和角色)。你必须修改数据库以安装这项功能。默认安装情况下,ctxsys用户是被锁定的,因此要先启用ctxsys的用户。

步骤二:赋权

在ctxsys用户下,授予测试用户oratext以下权限:

GRANT resource, CONNECT, ctxapp TO oratext;

GRANT EXECUTE ON ctxsys.ctx_cls TO oratext;

GRANT EXECUTE ON ctxsys.ctx_ddl TO oratext;

GRANT EXECUTE ON ctxsys.ctx_doc TO oratext;

GRANT EXECUTE ON ctxsys.ctx_output TO oratext;

GRANT EXECUTE ON ctxsys.ctx_query TO oratext;

GRANT EXECUTE ON ctxsys.ctx_report TO oratext;

GRANT EXECUTE ON ctxsys.ctx_thes TO oratext;

GRANT EXECUTE ON ctxsys.ctx_ulexer TO oratext;

步骤三:设置词法分析器(lexer)

--查询测试

SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移动城堡 or 俄罗斯',20)0;

SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移动城堡 or 欧洲',20)0;

--基本查询

SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移动城堡',20)0;

--查询包含多个词语and测试通过

SELECT score(20),t.* FROM textdemo t WHERE contains(book_abstract,'移动城堡 and 欧洲',20)0;

测试通过。


当前文章:oracle怎么替换所有 oracle数据库替换
链接地址:http://jkwzsj.com/article/hpedjd.html

其他资讯