jueves, 4 de enero de 2024

Tipos de Datos de Oracle 21c

Oracle 21c

La innovadora y poderosa Oracle Database 21c ha llegado para definir nuevos estándares en la gestión de bases de datos, consolidándose como la versión más reciente de la plataforma líder a nivel mundial. Diseñada para abrazar la mentalidad "cloud first", esta versión ya se encuentra disponible en Oracle Cloud, ofreciendo su excelencia tanto en entornos de máquinas virtuales como en servicios Bare Metal. La accesibilidad se amplía aún más con su presencia en el servicio gratuito Autónoma Database Free Tier, abriendo las puertas de la tecnología de Oracle a las regiones de Ashburn, Phoenix, Frankfurt y Londres.

Con una propuesta centrada en la innovación, Oracle Database 21c ha marcado su presencia en la nube, proporcionando soluciones avanzadas para entornos tanto de RAC como de instancia única. Mientras continúa su expansión en servicios en la nube, la versión local para plataformas como Exadata, Linux y Windows está programada para su lanzamiento en el transcurso de 2021, llevando la vanguardia de Oracle a una variedad aún mayor de usuarios y aplicaciones. Este hito refleja el compromiso de Oracle con la evolución constante y la excelencia en la gestión de datos, consolidando su posición como líder indiscutible en el ámbito de las bases de datos.



Tipos de Datos de Oracle 21c

Numéricos


Como tipos de datos numéricos, tenemos:
  • NUMBER (p, s): Un tipo de dato utilizado para almacenar valores numéricos. El Tipo de dato tiene un número de precisión p y una escala s. La precisión p puede variar de 1 a 38. La escala de s puede variar desde -84 hasta 127. 
    • Precisión es el número total de dígitos permitidos.
    • Escala es el número de dígitos permitidos a la derecha del punto decimal
Por ejemplo:

NUMBER (8,1), puede almacenar un valor máximo de 9.999.999,9

NUMBER (8,6), puede almacenar un valor máximo para 99.999999

Si no se especifica precisión, la escala predeterminada es el rango máximo. Si se especifica una precisión, la escala por defecto es 0 (sin dígitos a la derecha del punto decimal).

Por ejemplo:

NUMBER,  si no se pone el tamaño toma cualquier número de coma flotante (con decimales)

NUMBER (38), puede almacenar sólo los datos enteros (sin decimales), ya que los valores predeterminados de escala a 0

 

  • BINARY_FLOAT: El número de coma flotante de precisión simple IEEE nativa. Se almacena en 5 bytes: 4 bytes fijos para el número de punto flotante y 1 byte de longitud. Puede almacenar números en el rango de ~ ± 1038.53 con 6 dígitos de precisión.
  • BINARY_DOUBLE: El número de coma flotante de doble precisión IEEE nativa. Se almacena en 9 bytes: 8 bytes fijos para el número de coma flotante y 1 byte de longitud. Puede almacenar números en el rango de ± 10308.25 con 13 dígitos de precisión.
A modo de resumen, podemos decir que el tipo de datos número tiene una precisión significativamente mayor que la BINARY_FLOAT y los tipos de datos BINARY_DOUBLE, sino una gama mucho más pequeña (para almacenar los números).


Cadenas de caracteres


Como tipo de datos de caracteres tenemos:
  • CHAR (tamaño): Una cadena de caracteres de longitud fija con un tamaño máximo de 2000 bytes. Si inserta un valor inferior a la longitud especificada, Oracle rellenará el espacio en blanco. Si inserta un valor que es demasiado largo, Oracle devolverá un error. El tamaño es el número de caracteres a almacenar.
  • NCHAR (tamaño): Similar a CHAR (tamaño) que contiene datos Unicode formateados. Puede ser utilizado para almacenar datos de diferentes conjuntos de caracteres.
  • VARCHAR2 (tamaño): Una cadena de caracteres de longitud variable con un tamaño máximo de 4000 bytes. No utiliza espacio de almacenamiento para espacios en blanco al final de la cadena.
  • NVARCHAR2 (tamaño): Similar a VARCHAR2 (tamaño) que contiene datos Unicode formateados.
  • LONG: Un tipo de datos para almacenar datos de caracteres de longitud variable de hasta 2 Gb de longitud (versión más grande que VARCHAR2).
  • RAW: Un tipo binario de longitud variable para almacenar datos de caracteres. No habrá conversión de conjunto de caracteres en los datos almacenados, por lo que se considera una cadena de bytes binarios de información. Almacena hasta 2.000 bytes.
  • LONG RAW: Este tipo de datos es similar al tipo de datos LONG, así que es recomendable que utilice los tipos de datos CLOB o NCLOB.


Fecha


Como tipo de datos de fecha tenemos:
  • DATE: Estos tipos de datos son utilizadas para almacenar la fecha y valores de tiempo en una estructura de 7-byte de ancho fijo. Puede manejar intervalos de fechas desde el 1 de enero de 4712 AEC hasta el 31 de diciembre de 9999.
El formato de la estructura de 7 bytes es:

1. Siglo
2. Año en el siglo
3. Mes
4. Día del mes
5. Hora
6. Minuto
7. Segundo

  • TIMESTAMP: Está una extensión del tipo de datos DATE que puede almacenar datos de fecha y hora (incluyendo fracciones de segundo). Se pueden conservar hasta 9 dígitos a la derecha del punto decimal. Este tipo de datos toma 11 bytes de almacenamiento.
  • TIMESTAMP WITH TIME ZONE: Está una extensión del tipo de datos TIMESTAMP que puede almacenar, además, la información de zona horaria, por lo que la zona horaria insertada originalmente se conserva con los datos. Este tipo de datos se almacena en una estructura de 13 bytes de ancho fijo.
  • TIMESTATM WITH LOCAL TIME ZONE: Este es un tipo de datos similar al tipo de datos TIMESTAMP, sin embargo esta depende de la zona horaria. Por ejemplo, si inserta un valor de fecha / hora de una aplicación Web utilizando la zona horaria US / Pacific y la zona horaria de la base de datos es US / Eastern, el valor de fecha / hora final se convertirá en EEUU / zona horaria del Este y se almacena como un valor de marca de tiempo. Cuando se solicita de nuevo la información, la marca de tiempo almacenado en la base de datos se convierte de nuevo a la zona horaria de aplicaciones Web (US / Pacífico).
  • INTERVAL: Este tipo de datos se utiliza para almacenar un período de tiempo / duración de tiempo. Como consecuencia podemos utilizar este tipo de datos para la aritmética de fechas con el fin de añadir o restar un período de tiempo de una fecha o los tipos de datos de fecha y hora. Hay dos tipos de intervalo:
1. INTERVAL YEAR TO MONTH: Para almacenar una diferencia en años y meses. Es un tipo de datos de 5 bytes de ancho fijo.
2. INTERVAL DAY TO SECOND: Para almacenar una diferencia en días, horas, minutos y segundos. Es un tipo de datos de 11 bytes de anchura fija.

Binarios

Como tipo de datos binarios tenemos:
  • BFILE: Para empezar, este tipo de dato que permite almacenar un puntero a un objeto en el sistema de archivos en una columna de base de datos y para leer el archivo directamente desde el sistema de archivos. Esto le permite acceder a los archivos disponibles en el sistema de archivos del servidor de base de datos como si estuvieran almacenados en la propia tabla de la base de datos.
  • BLOB: Como consecuencia este tipo de datos que puede contener hasta 4 GB de datos. BLOB son útiles para almacenar documentos binarios (por ejemplo, hoja de cálculo, un documento de procesamiento de textos, imágenes, audio, video). A diferencia de BFILE tipo de datos que almacena la información digitalizada en el sistema de archivos, tipo de datos BLOB almacena la información digitalizada directamente en la base de datos.
  • CLOB: Por otra parte, un tipo de datos que puede contener hasta 4 GB de información. por lo tanto, este tipo de datos contiene información que está sujeta a conversión de conjunto de caracteres. Además, es apropiado para almacenar información de texto plano grande. En resumen, no es apropiado para almacenar los datos de texto sin formato son de 4.000 bytes o menos, en este caso se recomienda utilizar el tipo de datos VARCHAR2.
  • NCLOB: Funciona de la misma manera, que que el tipo de dato CLOB, pero los caracteres son almacenados en una NLS o en un conjunto de caracteres Unicode de varios bytes.

Otros

  • BOOLEAN: Oracle 9i y versiones posteriores introdujeron el tipo de dato BOOLEAN. Sin embargo, es importante destacar que, a diferencia de algunos otros sistemas de gestión de bases de datos (como PostgreSQL o MySQL), Oracle utiliza principalmente el tipo de datos NUMBER (1) para representar valores booleanos. Aun así, la introducción de BOOLEAN como tipo de datos proporciona una mayor claridad semántica al declarar variables y columnas que deberían almacenar valores lógicos.
Ejemplo de declaración de variable BOOLEAN:

DECLARE
my_boolean_variable BOOLEAN;
BEGIN
my_boolean_variable := TRUE;
DBMS_OUTPUT.PUT_LINE('Valor booleano: ' || my_boolean_variable);
END;

  • ROWID: Es un identificador único para una fila en una tabla de una base de datos Oracle. Contiene información sobre el objeto, el archivo, el bloque y la entrada de la fila. Puede ser utilizado para acceder directamente a una fila específica, pero su uso puede ser limitado en situaciones de particionamiento o ciertas operaciones.
Ejemplo de uso de ROWID:

SELECT ROWID, column1, column2
FROM my_table
WHERE column1 = 'some_value';

  • UROWID (Universal ROWID): Es una versión extendida de ROWID que se introdujo para abordar limitaciones potenciales del uso de ROWID. UROWID es más versátil y se puede utilizar en cualquier tabla en el sistema, independientemente de la forma en que esté particionada o indexada.
Ejemplo de uso de UROWID:

SELECT UROWID, column1, column2
FROM my_table
WHERE column1 = 'some_value';

  • TABLE: El tipo de datos TABLE se utiliza para definir colecciones anidadas, que pueden ser tablas anidadas o matrices.
Ejemplo de uso de TABLE:

CREATE TYPE employee_type AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2(50);
CREATE TYPE employee_table_type AS TABLE OF employee_type;

  • VARRAY: (Variable Array) es un tipo de datos que representa una matriz de tamaño variable.
Ejemplo de uso de VARRAY: 
CREATE TYPE phone_numbers_type AS VARRAY(3) OF VARCHAR2(15);

  • NCHAR / NVARCHAR2: Son versiones de los tipos de datos CHAR y VARCHAR2 que admiten caracteres Unicode.
Ejemplo de uso de NVARCHAR2: 
CREATE TABLE unicode_table (
id NUMBER,
description NVARCHAR2(100)
);

  • SDO_GEOMETRY: Utilizado para almacenar información espacial, como puntos, líneas y polígonos.
Ejemplo de uso de SDO_GEOMETRY: 
CREATE TABLE spatial_data (
id NUMBER,
location SDO_GEOMETRY
);

  • XMLTYPE: Permite almacenar y manipular datos XML.
Ejemplo de uso de XMLTYPE: 
CREATE TABLE xml_data (
id NUMBER,
xml_content XMLTYPE
);

  • SEQUENCE: No es un tipo de dato en sí mismo, pero Oracle utiliza secuencias para generar identificadores únicos de manera automática.
Ejemplo de uso de SEQUENCE: 
CREATE SEQUENCE my_sequence START WITH 1 INCREMENT BY 1;

No hay comentarios:

Publicar un comentario

Tipos de Datos de Oracle 21c

Oracle 21c La innovadora y poderosa Oracle Database 21c ha llegado para definir nuevos estándares en la gestión de bases de datos, consolidá...