我有一個名爲sales_staff_08的表和姓,用戶名爲3列。如何更新過程中重複PL/SQL的記錄
用戶名使用名字和姓氏連接在一起。
因爲它可能被複制。所以我想避免增加一些數字。
當前表
USERNAME
----------
JOHSMITH1
TOMNGUYE1
STEREDMO1
BOBJOHN1
CARJONES1
DANCREIG1
STEREDMO1
TOMNGUYE1
我要來更新複製的記錄,應該這個樣子:
USERNAME
----------
JOHSMITH1
TOMNGUYE1
STEREDMO1
BOBJOHN1
CARJONES1
DANCREIG1
STEREDMO2
TOMNGUYE2
我第一次嘗試更新記錄
CREATE OR REPLACE PROCEDURE proc_concate_names IS
vc_username VARCHAR(25);
v_number NUMBER (2) := 1;
CURSOR cur_concate_username IS
SELECT firstname, surname, username FROM sales_staff_08;
BEGIN
FOR rec_cur_concate IN cur_concate_username
LOOP
vc_username := rec_cur_concate.firstname || rec_cur_concate.surname || v_number;
UPDATE sales_staff_08 ss
SET username = vc_username
WHERE ss.username = rec_cur_concate.username;
END LOOP;
END proc_concate_names;
/
我認爲你必須改變你的表結構,主要是爲每個名稱添加唯一的ID,以便使用各自的id而不是rec_cur_concate.username來更新用戶名。 或者我認爲有一種使用觸發器的可能方法。 – ajmalmhd04 2013-02-11 04:47:20
其實我有sales_staff_id作爲主鍵。 – 2013-02-11 14:14:18