Ограничение на символ, меняющийся с помощью чисел - PullRequest
0 голосов
/ 20 марта 2012

У меня есть этот код (только выдержка) ...

CREATE TABLE "Degree"
(
  ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (ippp_code >= 4 OR ippp_code <= 5) NOT NULL
)

Я пытаюсь сделать так, чтобы ippp_code был максимум 5 символов или минимум 4 символа.Таким образом, вы можете ввести только 4 или 5 символов.

Когда я запускаю код, я получаю сообщение об ошибке, говорящее ...

ОШИБКА: оператор не существует: изменение символа> =целое число СОВЕТ: ни один оператор не соответствует заданному имени и типу (аргументам) аргумента.Возможно, вам потребуется добавить явные приведения типов.

*** Ошибка ***

ОШИБКА: оператор не существует: символ изменяется> = целое состояние SQL: 42883 Подсказка: ни один оператор не соответствует данному имени и типу (аргументам) аргумента.Возможно, вам придется добавить явные приведения типов.

Интересно, можно ли использовать ограничение, которое я установил, используя изменение символов?Также я могу получить исправление по коду?

Ответы [ 2 ]

2 голосов
/ 20 марта 2012
CREATE TABLE "Degree" 
( 
  ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (length(ippp_code) >= 4 OR length(ippp_code) <= 5) NOT NULL 
) 

Вы пытались проверить, что значение ippp_code было от 4 до 5, а не длина.

1 голос
/ 20 марта 2012

Попробуйте это:

CREATE TABLE Degree
(
  ippp_code varchar2(5) not null, 
  CONSTRAINT four_or_five_chars_only 
  CHECK (length(ippp_code) between 4 and 5)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...