我有一个名为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