我有一个员工、产品和产品里程表,如下所示
每个员工都有一个唯一的 emp_code,具体取决于他可以访问的产品。
每个产品的标识符都有一个唯一的前缀。
我需要为每个产品生成一个唯一的字母数字标识符并将其分配给员工。
此产品标识符的长度为 9 个字符,包括前缀。
里程表将存储分配给该特定产品中员工的最后一个 emp_code。
如何编写一个存储过程来根据产品为系统中添加的每个新员工生成这些字母数字 emp_codes?
请帮忙。
编辑1:
只是里程表表中的一个小修正,我们可能不需要将里程表存储为 A00000001。相反,我们只能存储 00000001 然后附加前缀。
编辑2:
这是我到目前为止所做的。
create or replace PROCEDURE SP_GEN_NEXT_DUMMY_DB_PRISM_ID
(
in_product_id number,
db_prism_id out varchar2
)
AS
BEGIN
UPDATE BI_DB_PRISM_ID_ODOMETER
SET DB_PRISM_ID = DB_PRISM_ID + 1
WHERE
PRODUCT_ID = in_product_id;
SELECT to_char(db_prism_id, 'FM00000000') into db_prism_id FROM BI_DB_PRISM_ID_ODOMETER WHERE PRODUCT_ID = in_product_id;
END;
但是如何确保它在事务中运行,以及如何将产品前缀附加到生成的数字。