如何在 oracle 数据库中使用字符串创建 TRIGGER 列 id 自动增量?

问题描述

我在列 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 行

解决方法

应该

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