Oracle中的replace函数

问题描述:

将user表中的loginsystem字段值拿来判断,如果第一位为0则不允许进入系统,现在要将工号为19281的人员权限改成可以登录系统

 

第一次想到的方法是:update user set loginsystem = replace(loginsystem,substr(loginsystem,0,1),'1') where usercode ='19281';
本来想这样就能将loginsystem字段的第一个0换成1了.

可是我犯了一个严重错误,就是模糊了replace的使用规则,现在重申下:replace(原字段,“原字段旧内容“,“原字段新内容“)

这样一来,刚才的脚本就将原来值中为0的全部转化成1了,比如原值是“01000”,那经过修改后就成了“11111”,这样虽然达到了效果,但是修改了其他系统的权限,记住replace,是个循环的过程,从第一位开始找原字段的旧内容,如果有多个, 那么就会循环替换。所以要用下面语句。

update user set loginsystem = "1"||substr(loginsystem,1,length(loginsystem)-1) where usercode ='19281';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值