如何在oracle中插入2个带序列的查询?

时间:2017-02-01 01:01:12

标签: c# sql oracle sequence

我有两个问题:

INSERT INTO CLASS
(TEACHER_ID, CLASS,)
VALUES (:i_teacher_id, :i_class)
INSERT INTO TEACHER_INFO
(TEACHER_ID, TEACHER_NAME) VALUES (:i_teacher_id, :i_teacher_name)

teacher_id按以下顺序递增:t0001,t0002,t0003 ......等

然后我试着这样做:

INSERT INTO TEACHER_INFO
(TEACHER_ID, TEACHER_NAME) VALUES (teacher_seq.nextval, :i_teacher_name)

但序列只给我" 4"不是t0004

1 个答案:

答案 0 :(得分:0)

如果teacher_id必须采用这种格式,并且必须构造为insert语句的一部分,那么你可以这样做:

INSERT INTO TEACHER_INFO 
(TEACHER_ID, TEACHER_NAME) 
VALUES ('t'||LPAD(teacher_seq.nextval, 4, '0'), :i_teacher_name)

也就是说,添加初始" t",然后在用0填充4位数后附加下一个序列号。