2017-02-01 5 views
0

У меня есть два запроса:Как вставить 2 запроса с последовательностью в oracle?

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, T0003, T 0002 ... и т.д.

Затем я попытался сделать это:

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

Но последовательность дайте мне просто «4», а не t0004

+0

Что такое 'teacher_id', чтобы он был таким образом увеличен? Последовательности - это просто цифры. Там действительно не нужно использовать строки для таких идентификаторов. –

ответ

0

Если teacher_id должен быть в этом формате и должен быть построен как часть инструкции insert, вы можете сделать это:

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

То есть, добавить начальный «Т», а затем добавьте следующий порядковый номер после того, как дополняя его до 4 цифр с нулями.