‘壹’ Oracle数据库数据修改语句
oracle中修改数据用update语句。
语法:
UPDATE 表名 SET 字段='XXX' WHERE 条件;如,数据库中,test表数据如下:
现在要将王五的名字改成王九,可用如下语句:
update test set name='王九' where name='王五';
commit;执行后结果:
‘贰’ oracle 数据库用update 语句更新无效。
同意楼下,可能是没有提交事务。没有提交事务的话,数据库是不会更新的。
‘叁’ oracle数据库update语句
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的。
update A set cou2 = (select B_cou1 from B where B.B_name = A.name) where name in (select B_name from B where B.B_name = A.name)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
‘肆’ oracle中如何写update语句
--定义游标sms_send_cur,使用游标型for循环遍历sms_send_cur获取记录,最后根据要求执行相应的更新操作。
declare
cursor ssm_send_cur is
select *
from sms_send_wait ssw left join sms_send_receive ssr on ssr.sms_id = ssw.sms_id
where not exists
(select ssrb.phone_number
from sms_send_receive_blacklist ssrb
where ssrb.phone_number=ssw.phone_number) and ssw.send_wait_time between sysdate-1 and sysdate+1
begin
--循环获取游标中的记录
for sms_send_rec in sms_send_cur
loop
update sms_send_wait ssw set ssw.verify_state = '0'
where ssw.pbone_number = sms_send_rec.phone_number;
end loop;
end;