последовательность оракула для возврата числа в виде строки - PullRequest
1 голос
/ 22 февраля 2012

У меня есть последовательность, которая возвращает число, подобное этому

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» и т. Д.

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012
  1. Почему 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 ; 
0 голосов
/ 23 февраля 2012

Возможно, вам следует изменить тип данных FORM_ID с VARCHAR или STRING на NUMBER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...