Si bien Oracle posee el tipo de datos Boolean en su lenguaje PL/SQL, el mismo no podía ser utilizado para definir columnas en la base de datos, ni en sentencias SQL.
BOOLEAN en Columnas
El nuevo tipo de datos puede utilizarse en columnas de tablas y vistas en Oracle 23c, como podemos ver a continuación:
CREATE TABLE IF NOT EXISTS tClientes (ID_Cliente NUMBER(10), Nombre_Cliente VARCHAR2(100), Activo BOOLEAN);
Valor Boolean | Valores Aceptados de Entrada |
---|---|
TRUE | TRUE, true, 'TRUE', 'true', 'yes', 'YES', 'on', 'ON', 't', 'T', 'y', 'Y', '1', 1 |
FALSE | FALSE, false, 'FALSE', 'false', 'no', 'NO', 'off', 'OFF', 'f', 'F', 'n', 'N', '0', 0 |
INSERT INTO tClientes VALUES (1,'Cliente 1', TRUE); INSERT INTO tClientes VALUES (2,'Cliente 2', FALSE); INSERT INTO tClientes VALUES (3,'Cliente 3', 1); INSERT INTO tClientes VALUES (4,'Cliente 5', '0'); INSERT INTO tClientes VALUES (5,'Cliente 5', 45); INSERT INTO tClientes VALUES (6,'Cliente 6', 'f'); INSERT INTO tClientes VALUES (7,'Cliente 7', 'ON'); INSERT INTO tClientes VALUES (8,'Cliente 8', 'n');
Nota: Al usar valores numéricos, cualquier valor distinto de 0 será considerado como VERDADERO (TRUE) y el valor 0 como FALSO (FALSE).
Restricciones
Podemos crear restricciones de diversos tipos sobre columnas BOOLEAN, como ser:
- Clave Primaria (Primary Key)
- Clave Foránea (Foreign Key)
- Clave Única (Unique Key)
- Check Constraint
- NOT NULL
Valor por Defecto
Se puede definir un valor por defecto para las columnas de tipo BOOLEAN:CREATE TABLE tBoolean (ID NUMBER(10), Activo BOOL DEFAULT TRUE);
Uso en SQL
El tipo de datos BOOLEAN puede usarse en sentencias SQL como cualquier otro tipo de datos de Oracle. En el siguiente ejemplo, vamos a mostrar los registros de la tabla creada anteriormente que posean la columna Activo con un valor de TRUE usando SQL Developer 23.1:
SELECT *FROM tClientes cWHERE c.Activo = TRUE;
Cambios en Funciones de Conversión
SELECT c.ID_Cliente, TO_CHAR(Activo) AS ValChar, TO_NUMBER(Activo) AS ValNumFROM tClientes cWHERE c.ID_Cliente < 4;
Y también se incorpora una nueva función TO_BOOLEAN para convertir valores numéricos o de texto en booleanos:
SELECT TO_BOOLEAN(2), TO_BOOLEAN('t'), TO_BOOLEAN('false');
Conclusión
Oracle Database 23c incorpora el tipo de datos BOOLEAN (ya existente en PL/SQL) en su lenguaje SQL permitiendo definir columnas con este tipo de datos y consultando o filtrando las mismas en sentencias SQL, como se documenta en la sección Data Types de la documentación de Oracle Database 23c.
Si desean conocer más sobre Oracle 23c, es recomendable que vean estos artículos en este blog como punto de partida:
- Oracle Database 23c Free - Developer Edition.
- Instalando Oracle Database 23c (Free Developer Edition) en Oracle Cloud.
Adicionalmente, pueden consultar todos los artículos relacionados a Oracle Database 23c agrupados en en el tag Database 23c.
No hay comentarios.:
Publicar un comentario