Creating a sequence for a varchar2 field in Oracle

后端 未结 4 1428
傲寒
傲寒 2021-01-14 00:58

I want to create a sequence for this varchar. It would have been easier had it been a number instead of varchar. In that case, I could do

seq_no := se

4条回答
  •  既然无缘
    2021-01-14 01:32

    Sequences are purely numeric. However, you need a trigger anyway, so simply adapt such trigger to insert the desired prefix:

    CREATE OR REPLACE TRIGGER FOO_TRG1
        BEFORE INSERT
        ON FOO
        REFERENCING NEW AS NEW OLD AS OLD
        FOR EACH ROW
    BEGIN
        IF :NEW.FOO_ID IS NULL THEN
            SELECT 'A' || TO_CHAR(FOO_SEQ1.NEXTVAL, 'FM0000000') INTO :NEW.FOO_ID FROM DUAL;
        END IF;
    END FOO_TRG1;
    /
    ALTER TRIGGER FOO_TRG1 ENABLE;
    

提交回复
热议问题