用于以字符串形式返回数字的 oracle 序列
我有一个返回这样的数字的序列
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”这样的字符串。
我该怎么做?
I have a sequence which returns a number like this
CREATE SEQUENCE test.SEC_FORM
START WITH 9000
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER;
And I created a trigger to insert this value into the table 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 ;
But the sequence is returning integer while the form_id in the form table is string.
I need a string like '9000' etc.
How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
FORM_ID
是一个字符串,为什么不把它变成一个整数?2.
FORM_ID
a string, why won't you make it an integer?2.
也许您应该考虑将 FORM_ID 数据类型从 VARCHAR 或 STRING 更改为 NUMBER。
Maybe you should consider to change FORM_ID data type from VARCHAR or STRING to NUMBER.