我的 Oracle 数据库中有一个students
表,其中有一个名为RECORD_NUMBER
. 该字段有 8 个字符长,我想创建一个触发器,以便在0
插入时用 s 填充左侧部分。这是我到目前为止所拥有的:
create or replace
TRIGGER STUDENTS_RECORD_NUMBER_TRG
BEFORE INSERT OR UPDATE OF RECORD_NUMBER ON TBL_STUDENTS
FOR EACH ROW
BEGIN
WHILE length(:new.RECORD_NUMBER) < 9
LOOP
:new.RECORD_NUMBER := LPAD(:new.RECORD_NUMBER,8,'0');
END LOOP;
NULL;
END;
但是,当我尝试插入一行时,数据库连接会锁定,我必须重新启动 Oracle 才能再次使用它。这个触发器是否有可能导致无限循环?