【问题标题】:How to insert 2 queries with sequence in oracle?如何在 oracle 中插入 2 个带序列的查询?
【发布时间】:2017-02-01 01:01:12
【问题描述】:

我有两个疑问:

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

【问题讨论】:

  • teacher_id 是什么让它如此递增?序列只是数字。确实不需要为此类 id 使用字符串。

标签: c# sql oracle sequence


【解决方案1】:

如果teacher_id 必须采用这种格式,并且必须作为插入语句的一部分进行构造,您可以这样做:

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

即添加首字母“t”,然后将下一个序号用0补齐后追加。

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多