我有一个返回像这样的数字的序列
CREATE SEQUENCE test.SEC_FORM
START WITH 9000
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER;
我创建了一个触发器,将此值插入表格FORM。
CREATE OR REPLACE TRIGGER test.TRG_SEC_FORM
BEFORE INSERT
ON test.FORM
FOR EACH ROW
BEGIN
IF :NEW.FORM_ID IS NULL THEN
SELECT test.SEC_FORM.NEXTVAL INTO :NEW.FORM_ID FROM DUAL;
END IF;
END ;
但序列返回整数,而表格表格中的form_id是字符串。 我需要一个像'9000'等字符串。
我该怎么做?
答案 0 :(得分:2)
FORM_ID
是一个字符串,为什么不把它变成一个整数?2
CREATE OR REPLACE TRIGGER test.TRG_SEC_FORM
BEFORE INSERT
ON test.FORM
FOR EACH ROW
BEGIN
IF :NEW.FORM_ID IS NULL THEN
SELECT TO_CHAR(test.SEC_FORM.NEXTVAL) INTO :NEW.FORM_ID FROM DUAL;
END IF;
END ;
答案 1 :(得分:0)
也许您应该考虑将FORM_ID数据类型从VARCHAR或STRING更改为NUMBER。