oracle中怎么创建字母加数字的序列?求大神解答

2024-11-30 09:48:22
推荐回答(2个)
回答1:

CREATE TABLE TEST_SEQNO (
SEQNO VARCHAR(10) PRIMARY KEY,
VALVARCHAR(20)
);

使用 序列号 + 触发器 组合来完成。

-- 序列号
CREATE SEQUENCE seq_testno
increment by 1 -- 每次递增1
start with 1 -- 从1开始
nomaxvalue -- 没有最大值
minvalue 1 -- 最小值=1
NOCYCLE;

-- 触发器.
CREATE OR REPLACE TRIGGER tr_test_seqno
BEFORE INSERT ON TEST_SEQNO
FOR EACH ROW
BEGIN
SELECT
'TB' || TRIM(TO_CHAR(seq_testno.nextval, '000')) INTO :new.SEQNO
FROM
dual;
END;
/

回答2:

SELECT 'TB'||lpad(rownum,3,'0') FROM a