我有一個員工,產品和產品里程錶表看起來像下面Oracle存儲過程生成序列號?
每個員工都有要看他訪問該產品的獨特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;
但我怎麼能確保它在一個事務中運行,並且還我怎麼追加產品前綴產生的數量。
他們需要在一個產品中連續嗎? – zerkms
@ zerkms.Yes。他們需要連續。它不應該是一些隨機數字。 – ashishjmeshram
@zerkms。可能發生的情況是,我們生成了一個連續的號碼,但它從來沒有分配給員工,在這種情況下,它丟失了,這與我們一致。 – ashishjmeshram