今天说一下ORACLE修改数据库中数据的几种方法:
1、UPDATE 确定条件批量修改
--批量修改
UPDATE cux_oa_person_b t --表名
SET t.person_number = '111' --需要修改的数据
WHERE t.person_name = 'xxx' --条件
2、FOR DATE 可视化修改
--与查询一样,只是后面多了 FOR UPDATE
SELECT * FROM oe_order_headers_all tt
WHERE tt.HEADER_ID = 21016
FOR UPDATE
点开锁,修改数据,点击√,关闭锁。最后左上角COMMIT。确认
注意: 使用 FOR UPDATE,会使资源被占用,别人无法进行修改。所以一定要按条件去搜索编辑,不要全表for update或大数据量的for update
3、FOR UPDATE NOWAIT 这个与上面功能一样,只是如果资源被占用,会进行提示,而FOR UPDATE 则会一直执行
4、游标批量更新(适合多种条件更新数据情景)
举个简单的例子,例如需要下面这样更新数据。
----------------->
当然这种简单需求也可以用update实现。但是复杂一点的就会用到游标。这里只是演示怎么用游标更新数据。
DECLARE
CURSOR c1 IS
SELECT * FROM cux_aaa; --查询条件表
l_name VARCHAR2(240);
BEGIN
FOR i IN c1 LOOP --循环
l_name := i.v2 || i.v2;
UPDATE cux_aaa t
SET t.v2 = l_name
WHERE t.v1 = i.v1;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;