【问题标题】:How to create TRIGGER column id auto increment with string in oracle database? [closed]如何在 oracle 数据库中使用字符串创建 TRIGGER 列 ID 自动递增? [关闭]
【发布时间】:2021-05-14 01:57:06
【问题描述】:

我想要的列 id 中的结果:S-1、S-2、S-3

CREATE OR REPLACE TRIGGER auto_id
BEFORE INSERT ON login 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW

BEGIN
    :NEW.id := :NEW.id || to_char('"S-"',to_char(seq_log.nextval));
END login;

但是当我插入数据时,它的错误 ORA-06502: PL/SQL: 数字或值错误: 字符到数字的转换错误 ORA-06512:在“WKSP_WORKSPACE0089.AUTO_ID”,第 3 行 ORA-04088: 执行触发器“WKSP_WORKSPACE0089.AUTO_ID”期间出错 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行

【问题讨论】:

  • 如果id 被声明为数字而不是字符串,则会发生这种情况。

标签: sql database oracle triggers auto-increment


【解决方案1】:

应该是

:NEW.id := :NEW.id || 'S-' || to_char(seq_log.nextval);

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 2016-03-23
    • 1970-01-01
    • 2019-02-10
    • 2012-12-23
    • 2020-07-10
    • 2012-12-20
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多