今天說一下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;