2016-01-09 4 views
1

Привет Я довольно новичок в pl/sql, и я пытаюсь создать таблицу со столбцом, который должен соответствовать шаблону, состоящему из пяти символов, с двумя первыми символами: буква, а остальные три - номера без NULL и не начинаются с нуля. Я попытался альтер таблицы изменить вариант, но я получаю сообщение об ошибке, что я пытаюсь сделать, это не ALTER TABLE вариантаСоздайте столбец в таблице, который соответствует определенному шаблону

CREATE TABLE my_course 
(my_course_firstyear VARCHAR2(2), 
my_course_secondyear NUMBER(10) NOT NULL, 
my_course_final VARCHAR2(10)); 

ALTER TABLE my_course 
modify 
my_course_final VARCHAR2(20), 
my_course_secondyear || mycoursefinal); 

Конечно, это не работает, но я просто не могу работать, как установить ограничения, когда столбец представляет собой комбинацию букв и цифр.

Буду признателен за вашу помощь в этом.

ответ

3

Основываясь на вашем описании в первом абзаце, ограничение, которое вы хотите, является контрольным ограничением. Вы можете установить его с помощью регулярного выражения:

alter table my_course add constraint chk_column 
    check (regexp_like(column, '^[a-zA-Z]{2}[1-9][0-9][0-9]$')); 

Ограничения могут быть также включены в create table заявлении.

Обратите внимание, что если столбец будет содержать пять символов, вы должны объявить его как CHAR(5).

Я не уверен, что этот код имеет отношение к описанию проблемы.

Смежные вопросы