问题描述
我在列 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);