![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CREATE DOMAIN BOOL AS CHAR(1) DEFAULT N CHECK (VALUE IN ( Y , N )); [Oracle, ]
EternalWonderer © (2001-12-19 12:26:00)А не подскажут ли великие Мастера, как сие изречение будет звучать на PL\SQL? БОЛЬШОЕ спасибо.
EternalWonderer (2001-12-19 14:18:00) [1]>Yuvich (19.12.01 14:07) Спасибо за разъяснение. Удачи!
Yuvich (2001-12-19 14:07:00) [2]Лучше всего пока не связываться с Типами в Oracle (как говорит сам Oracle, между прочим), а "вешать" нужное ограничение на колонку при создании таблицы:
create table tab (
...
fld number(1) default "N" not null
constraint bool_fld check (fld in ("Y", "N")),
...
);
тип bool заменяется на number(1)
Да, неудобства есть - подобный констрэйнт надо "вешать" на каждое подобное поле каждой нужной таблицы, но если используется CASE (типа ERWin) и таблиц очень много, то неудобство исключается (в ERWin есть домены); если таблиц мало - то неудобством можно пренебречь. Если таблиц очень много и не используется CASE, то неудобством тоже можно пренебречь, т.к. "геморроя" и так хватит.
EternalWonderer (2001-12-19 12:55:00) [3]Верно, ключевого слова DOMAIN в Oracle нет.
Но ведь там есть CREATE TYPE, CREATE SUBTYPE и т.д.
Как задать тип данных с указанными ограничениями для последующего использования в разных таблицах? Или требуется прописывать эти ограничения в триггерах в каждом случае?
Yuvich (2001-12-19 12:38:00) [4]Никак. DOMAIN не является объектом Oracle.