Существует ли логический тип в оракулных базах данных, аналогичный типу BIT в MS SQL?
Существует ли булев тип в базах данных оракула?
Ответ 1
В Oracle SQL (не PL/SQL) отсутствует некий логический тип данных, но у них также нет четкой рекомендации относительно того, что использовать. См. этот поток на asktom. Из рекомендаций CHAR(1) 'Y'/'N'
они переключаются на NUMBER(1) 0/1
, когда кто-то указывает, что 'Y'/'N'
зависит от английского языка, в то время как, например, Немецкие программисты могут вместо этого использовать 'J'/'N'
.
Хуже всего то, что они защищают это глупое решение, как будто они защищают глупость ''=NULL
.
Ответ 2
Неа.
Может использовать:
IS_COOL NUMBER(1,0)
1 - true
0 - false
--- наслаждайтесь Oracle
Или используйте char Y/N как описано здесь
Ответ 3
В соответствии с ответами Ammoq и kupa, мы используем число (1) со значением по умолчанию 0 и не допускаем null.
здесь добавьте столбец для демонстрации:
ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);
Надеюсь, это поможет кому-то.
Ответ 4
Не на уровне SQL и жаль В PLSQL есть один, хотя
Ответ 5
Нет такого типа boolean, но вместо этого вы можете использовать 1/0 (номер типа) или 'Y'/'N' (тип char), или 'true'/'false' (тип varchar2).
Ответ 6
Существует тип boolean для использования в pl/sql, но ни один из них не может использоваться в качестве типа данных столбца.
Ответ 7
Общим трюком для экономии пространства является сохранение значений boolean как Oracle CHAR, а не NUMBER:
Ответ 8
Просто потому, что никто не упомянул об этом: использование RAW (1) также кажется обычной практикой.
Ответ 9
Нет, в базе данных Oracle нет булева типа, но вы можете сделать так:
Вы можете поместить ограничение проверки на столбец.
Если в таблице нет столбца проверки, вы можете добавить его:
ALTER TABLE table_name
ADD column_name_check char(1) DEFAULT '1';
Когда вы добавляете регистр, по умолчанию этот столбец получает 1.
Здесь вы помещаете чек, который ограничивает значение столбца, просто установите только 1 или 0
ALTER TABLE table_name ADD
CONSTRAINT name_constraint
column_name_check (ONOFF in ( '1', '0' ));
Ответ 10
DECLARE
error_flag BOOLEAN := false;
BEGIN
error_flag := true;
--error_flag := 13;--expression is of wrong type
IF error_flag THEN
UPDATE table_a SET id= 8 WHERE id = 1;
END IF;
END;