oracle如何批量替换,oracle如何批量替换字段中指定的ip语句

oracle数据库字段内容如何批量替换?

直接用update语句替换即可。

站在用户的角度思考问题,与客户深入沟通,找到五指山网站设计与五指山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖五指山地区。

如test表中有如下数据:

现要将sal中的数字都替换成10,用以下语句:

update test set sal=10;

commit;

更新后结果:

注意:执行update语句后,需要进行commit,也就是提交,这样才会使update生效。

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数据库中某一个表中的某一列数据?

最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能). 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键

1、构建临时表进行主键关联更新

需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。

做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:

ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键

1、构建临时表进行主键关联更新

需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。

做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:

ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键

ORACLE批量替换字段中的字符

merge into MB A

using FZBH B

on (A.GZGLBS=b.GZGLBS)

when matched then

update set a.MB= REPLACE(A.MB,'{X','{'||b.FZBH)

如果格式不是固定{X}的话,用regexp_REPLACE 就行了

1、oracle 如何批量替换某一字段的部分值,例如一二四五第0001号,改为一二三四五第0001号。

update table2 t2 set col=(select col from table1 t1 where t1.id=t2.id);

replace('一二四五第0001号','二','二三')=一二三四五第0001号


标题名称:oracle如何批量替换,oracle如何批量替换字段中指定的ip语句
URL网址:http://azwzsj.com/article/hscdjg.html