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

如:TB001,TB002,TB003......TB010......TB100......。后面的数字是有范围的。跪求答案... 如:TB001,TB002,TB003......TB010......TB100......。后面的数字是有范围的。跪求答案 展开
 我来答
匿名用户
2013-04-15
展开全部
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;
/
追问
要在hihernate框架的映射文件里面我应该怎样去映射这个主键?
c6iz
2013-04-15 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1048万
展开全部
SELECT 'TB'||lpad(rownum,3,'0') FROM a
追问
这是查询语句还是插入语句?假如我要hihernate框架的映射文件的主键里面映射,那我应该怎样写?
追答
这是个查询,生成你要的序列,至于hibernate框架我不清楚是什么~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式