powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как создать свой тип?
9 сообщений из 9, страница 1 из 1
Как создать свой тип?
    #32113368
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужен тип, наподобие boolean, который мог бы содержать только значения 0 и 1 - чтобы не писать множество одинаковых check в таблицах. Как это можно сделать? Я знаю есть тип boolean, но только для PL/SQL. Нет ли уже подобного типа для данных в таблицах?
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113369
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K sogaleniu...
No esli tak hochetsya ispol'zovat' boolean v code,
to ispol'zui Number i v svoi query vkluchai reference to DIUTIL. Pravda, performance budet huge..
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113372
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. В MS SQL Server я могу создать тип (create domain ...), указать что единственными возможными значениями могут быть 0 и 1, а Oracle аналогичной функциональности не поддерживает?
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113373
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если CHAR(1) 'Y' or 'N' ?
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113375
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHAR(1) не подходит, нужно чтобы стандартные элементы управления нормально работали. И как сделать чтобы в эту CHAR(1) можно было вводить только 'Y' и 'N' - без check на каждой таблице?
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113802
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в документации (по крайней мере по 8i) я не нашёл возможности задать
умалчиваемые значения для типа.
Я думаю в твоём случае поможет тип с 1 полем типа char(1) и 1 функции-члена что-то типа setval
Соответственно вставляешь в таблицы через setval где и проверяешь
значение
Если не 0 и не 1 - ошибка
Ну а работать можно с 0 и 1 легко. Можно и number объявить чтобы не конвертить...
IMHO
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32113998
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К вопросу об организации boolean
Возможно это не подходит для твоей задачи, но я видел еще одну реализацию boolean - поле либо null либо нет. В качестве типа пойдет любой
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32114009
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
А зачем велосипед изобретать?
Сделай как в C - 0 или не 0. Зачем вводить ограничения? Ты же не будешь по булеву типу делать FK. А индекс (если нужен) лучше битовый.
...
Рейтинг: 0 / 0
Как создать свой тип?
    #32114015
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант SERG1257:
Такой вариант не подходит, стандартные контролы это не поймут.

Что касается варианта с 0 и не 0, то да, это возможно, но мне было бы удобнее писать процедуры если бы было только NULL, 0, 1. Ставить же кучу check неудобно, хочется сделать проще.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как создать свой тип?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]