2 и только 2 символа для оракула - PullRequest
4 голосов
/ 16 июня 2011

Я пытаюсь создать таблицу в oracle, которая будет принимать 2 и только 2 символа.Я попытался использовать char (2), но если я вставлю 1 символ в оператор вставки, он примет это.Как заставить оракула принимать только вставки из 2 точных символов и отклонять символы 1 и 3 и выше?Я искал по всему интернету и не могу найти ответ на этот вопрос.

Спасибо!Christopher

Ответы [ 2 ]

11 голосов
/ 16 июня 2011

Вы можете создать ограничение CHECK, которое применяет это ограничение

SQL> create table foo (
  2    col1 varchar2(2) NOT NULL
  3   ,check( length(col1) = 2 )
  4  );

Table created.

SQL> insert into foo values( 'ab' );

1 row created.

SQL> ed
Wrote file afiedt.buf

  1* insert into foo values( 'a' )
SQL> /
insert into foo values( 'a' )
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C0022134) violated
0 голосов
/ 16 июня 2011

Вы можете использовать триггер предварительной вставки для проверки длины - я не могу придумать, как предотвратить один символ.

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