¿Hay algún tipo booleano en las bases de datos Oracle?

¿Hay algún tipo Boolean en bases de datos Oracle, similar al tipo de datos BIT en Ms SQL Server?

No solo falta el tipo de datos booleano en el SQL de Oracle (no PL / SQL), sino que tampoco tienen una recomendación clara sobre qué usar en su lugar. Ver este hilo en asktom. Desde la recomendación CHAR(1) 'Y'/'N' cambian a NUMBER(1) 0/1 cuando alguien señala que 'Y'/'N' depende del idioma inglés, mientras que por ejemplo los progtwigdores alemanes podrían usar 'J'/'N' cambio.

Lo peor es que defienden esta estúpida decisión al igual que defienden la estupidez ''=NULL .

Nop.

Puedo usar:

 IS_COOL NUMBER(1,0) 1 - true 0 - false 

— disfruta de Oracle

O use char Y / N como se describe aquí

Según las respuestas de Ammoq y kupa, usamos el número (1) con el valor predeterminado de 0 y no permitimos los valores nulos.

aquí hay una columna de agregar para demostrar:

 ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL); 

Espero que esto ayude a alguien.

No en el nivel SQL y eso es una pena. Sin embargo, hay uno en PLSQL

No, no existe el tipo booleano, pero en lugar de esto puede usar 1/0 (tipo de número), o ‘Y’ / ‘N’ (tipo char) o ‘verdadero’ / ‘falso’ (tipo varchar2).

Hay un tipo booleano para usar en pl / sql , pero ninguno que pueda usarse como el tipo de datos de una columna.

Un truco común de ahorro de espacio es almacenar valores booleanos como un CHAR de Oracle, en lugar de NÚMERO:

Simplemente porque nadie lo mencionó aún: el uso de RAW (1) también parece una práctica común.

No, no hay un tipo booleano en Oracle Database, pero puede hacerlo de esta manera:

Puede poner una restricción de verificación en una columna.

Si su tabla no tiene una columna de verificación, puede agregarla:

 ALTER TABLE table_name ADD column_name_check char(1) DEFAULT '1'; 

Cuando agrega un registro, de forma predeterminada esta columna obtiene 1.

Aquí pones un cheque que limita el valor de la columna, solo pon 1 o 0

 ALTER TABLE table_name ADD CONSTRAINT name_constraint column_name_check (ONOFF in ( '1', '0' )); 
 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;