Мне нужна помощь в упорядочивании уже заполненной таблицы строковыми данными. Таким образом, у меня есть идентификатор COMP_ID,
TC0001 TC0002 TC0003
Поэтому, когда пользователь вводит новую строку, он должен начинаться с TC0004 и т.д. Я только начинаю оракул, и я не знаю, как подойти к этой последовательности. насколько я знаю, последовательность работает только с типом данных int.
Вы должны сделать что-то вроде этого:
CREATE SEQUENCE CREATE SEQUENCE yourtable_sequence
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
CREATE OR REPLACE TRIGGER yourtable_trigger
BEFORE INSERT ON yourtable
FOR EACH ROW
BEGIN
SELECT 'TC000' || to_char(yourtable_sequence.NEXTVAL)
INTO :new.COMP_ID
FROM dual;
END;
000
s будут заменены числом из последовательности, иначе это приведет к значениям, таким какTC00010
,TC00011
, ...TC000100
и т. Д. Поэтому вместо этого я ' d предлагает создать последовательность с максимальным значением 9999 и установить столбец с помощью выражения'TC' || TO_CHAR(yourtable_sequence.NEXTVAL,'fm0000')
.