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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库字段内容如何批量替换?相关的知识,希望对你有一定的参考价值。

oracle数据库字段内容如何让符合条件的内容批量替换?
我的数据库里表As_user字段名uflag里的内容0,要改成1,请问这个语句要怎么写?
还有就是想请教一下如果想查询表as_user字段名uflag里的内容为0和1的句子怎么写。
请高手请教下!!
条件是:字段名uflag里的内容为0的,要全部改成1

直接用update语句替换即可。

如test表中有如下数据:

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

update test set sal=10;
commit;

更新后结果:

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

参考技术A update As_user set ufag=replace(ufag,'0','1') 参考技术B update As_user set uflag=1 where ulag=0;
select * from as_user where uflag in(0,1) order by uflag;本回答被提问者采纳

oracle 批量替换某字段中第一位的值

比如说,某字段值000001 000002 000003 想要把第一位的0批量替换成2

参考技术A UPDATE TABLE_NAME SET COL1 = '2'||SUBSTR(COL1,2,LENGTH(COL1) - 1) 参考技术B 对于这个意思,不知道楼住是想哪一种?
1、不管第一位是什么,直接替换为2;
2、只有当第一位为0的时候,才替换为2;

对于第一种想法的话,可以通过截取字符串,可以用下面的更新语句:
UPDATE 表名 SET 字段名= '2' || substr(字段名,2) WHERE 字段名 IS NOT NULL;

(注意:oracle中的第一个字符的位置为1,第二个的位置为2,因此,上面使用substr(字段名,2),而不像java中,使用1)

对于第二种想法,可以使用正则表达来进行处理,或者是采用下面的方法:
UPDATE 表名 SET 字段名= '2' || substr(字段名,2) WHERE 字段名 IS NOT NULL AND substr(字段名,1,1) = '0';
(经过试验,其中第二种情况下,条件:字段名 IS NOT NULL 可以省略掉)本回答被提问者采纳

以上是关于oracle数据库字段内容如何批量替换?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 批量替换某字段中第一位的值

如何批量执行sql查找替换?

oracle 如何实现对单个表批量更新

批量修改oracle数据库中的某一个字段?

如何批量修改oracle数据库中某一个表中的某一列数据?

Oracle 批量更新表字段