Tipos de Datos en Oracle Database – Parte 2
En la parte anterior llamada Tipos de Datos en Oracle Database – Parte 1, pudimos apreciar los diferentes tipos de datos que tiene Oracle en cuanto a sus tipos de datos integrados. Oracle es una base de datos con muchos años en el mercado y probablemente es una de las bases de datos con mas variedad de tipos que existen en el mercado. En esta segunda parte te compartiré otro grupo de Tipos de Datos en Oracle Database, vamos con ello.
Partes
Antes de continuar, te invito a escuchar el Podcast: “Herramientas Online Para el Trabajo en Equipo” y “5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast):
Spotify: | Sound Cloud: | Apple Podcasts | Anchor Podcasts |
Bien ahora continuemos con el Post: Tipos de Datos en Oracle Database – Parte 2.
Tipos de datos ANSI, DB2 y SQL/DS
Las sentencias de SQL que crean tablas y clústeres también pueden utilizar tipos de datos ANSI y tipos de datos de los productos de IBM SQL/DS y DB2. Oracle reconoce el nombre del tipo de datos ANSI o IBM que difiere del nombre del tipo de datos de Oracle Database. Convierte el tipo de datos al tipo de datos de Oracle equivalente, registra el tipo de datos de Oracle como el nombre del tipo de datos de la columna y almacena los datos de la columna en el tipo de datos de Oracle en función de las conversiones que se muestran en las tablas siguientes.
Tipo de datos SQL ANSI | Tipo de datos de Oracle |
---|---|
CHARACTER(n)
CHAR(n) |
CHAR(n) |
CHARACTER VARYING(n)
CHAR VARYING(n) |
VARCHAR2(n) |
NATIONAL CHARACTER(n)
NATIONAL CHAR(n) NCHAR(n) |
NCHAR(n) |
NATIONAL CHARACTER VARYING(n)
NATIONAL CHAR VARYING(n) NCHAR VARYING(n) |
NVARCHAR2(n) |
NUMERIC[(p,s)]
DECIMAL[(p,s)] |
NUMBER(p,s) |
INTEGER
INT SMALLINT |
NUMBER(p,0) |
FLOAT
DOUBLE PRECISION REAL |
FLOAT(126)
FLOAT(126) FLOAT(63) |
La mayoria de los datos de la tabla anterior, han sido explicados en la Parte 1 de este post, pero es importante saber que:
- Los tipos de datos NUMERIC y DECIMAL pueden especificar solo números de punto fijo. Para esos tipos de datos, la(s) escala(s) por defecto es 0.
- El tipo de datos FLOAT es un número de coma flotante con una precisión binaria b. La precisión predeterminada para este tipo de datos es 126 binario o 38 decimal.
- El tipo de datos DOUBLE PRECISION es un número de punto flotante con precisión binaria 126.
- El tipo de datos REAL es un número de punto flotante con una precisión binaria de 63 o 18 decimal.
No definir columnas con los siguientes tipos de datos de SQL/DS y DB2, porque no tienen ningún tipo de datos de Oracle correspondiente:
- GRAPHIC
- LONG VARGRAPHIC
- VARGRAPHIC
- TIME
Ten en cuenta que los datos de tipo TIME también se pueden expresar como datos de fecha y hora de Oracle.
Veamos ahora los Tipos de datos de SQL/DS y DB2 convertidos a tipos de datos de Oracle:
Tipo de datos SQL/DS o DB2 | Tipo de datos de Oracle |
---|---|
CHARACTER(n) | CHAR(n) |
VARCHAR(n) | VARCHAR(n) |
LONG VARCHAR | LONG |
DECIMAL(p,s) | NUMBER(p,s) |
INTEGER
SMALLINT |
NUMBER(p,0) |
FLOAT | NUMBER |
De la tabla anterior debemos saber que:
- El tipo de datos DECIMAL solo puede especificar números de punto fijo. Para este tipo de datos, el valor predeterminado es 0.
- El tipo de datos FLOAT es un número de coma flotante con una precisión binaria b. La precisión predeterminada para este tipo de datos es 126 binario o 38 decimal.
Tipos definidos por el usuario
Los tipos de datos definidos por el usuario utilizan tipos de datos integrados de Oracle y otros tipos de datos definidos por el usuario como bloques de construcción de tipos de objetos que modelan la estructura y el comportamiento de los datos en las aplicaciones. Las secciones siguientes describen las diversas categorías de tipos definidos por el usuario.
Tipos de Objetos
Los tipos de objetos son abstracciones de las entidades del mundo real, como las órdenes de compra, que manejan los programas de aplicación. Un tipo de objeto es un objeto de esquema con tres tipos de componentes:
- Un nombre, que identifica el tipo de objeto de forma única dentro de ese esquema.
- Atributos, que son tipos integrados u otros tipos definidos por el usuario. Los atributos modelan la estructura de la entidad del mundo real.
- Métodos, que son funciones o procedimientos escritos en PL/SQL y almacenados en la base de datos, o escritos en un lenguaje como C o Java y almacenados externamente. Los métodos implementan operaciones que la aplicación puede realizar en la entidad del mundo real.
Tipos de datos REF
Un identificador de objeto (representado por la palabra clave OID) identifica de forma exclusiva un objeto y le permite hacer referencia al objeto desde otros objetos o desde tablas relacionales. Una categoría de tipo de datos llamada REF representa dichas referencias. Un tipo de datos REF es un contenedor para un identificador de objeto. Los valores REF son punteros a objetos.
Cuando un valor REF apunta a un objeto inexistente, se dice que REF está “colgando”. Un colgante REF es diferente de un nulo REF. Para determinar si REF está colgando o no, usa la condición IS[ NOT] DANGLING. Por ejemplo, dada la vista de objeto oc_orders en el esquema de ejemplo oe, la columna customer_refes de tipo REF a tipo customer_typ, que tiene un atributo cust_email:
1 2 3 4 5 |
SELECT o.customer_ref.cust_email FROM oc_orders o WHERE o.customer_ref IS NOT DANGLING; |
Varrays
Una array es un conjunto ordenado de elementos de datos. Todos los elementos de una array dada son del mismo tipo de datos. Cada elemento tiene un índice, que es un número que corresponde a la posición del elemento en la array. El número de elementos en una array es el tamaño de la array. Las array de Oracle son de tamaño variable, por lo que se denominan varrays. Debes especificar un tamaño máximo cuando declaras el varray.
Cuando declaras un varray, Oracle no asigna espacio. Define un tipo, que puedes usar como:
- El tipo de datos de una columna de una tabla relacional
- Un atributo de tipo de objeto
- Un tipo de retorno de función, parámetro o variable PL/SQL
Oracle normalmente almacena un objeto de array en línea (como parte de los datos de la fila) o fuera de línea (en un LOB), según su tamaño. Sin embargo, si especificas características de almacenamiento separadas para un varray, Oracle lo almacena fuera de línea, independientemente de su tamaño. Consulta varray_col_properties de CREATE TABLE para obtener más información sobre el almacenamiento de varray.
Tablas Anidadas
Un tipo de tabla anidada modela un conjunto desordenado de elementos. Los elementos pueden ser tipos integrados o tipos definidos por el usuario. Puedes ver una tabla anidada como una tabla de una sola columna o, si la tabla anidada es un tipo de objeto, como una tabla de varias columnas, con una columna para cada atributo del tipo de objeto.
Una definición de tabla anidada no asigna espacio. Define un tipo, que puedes usar para declarar:
- El tipo de datos de una columna de una tabla relacional
- Un atributo de tipo de objeto
- Un tipo de retorno de función, parámetro o variable PL/SQL
Cuando una tabla anidada aparece como el tipo de una columna en una tabla relacional o como un atributo del tipo de objeto subyacente de una tabla de objetos, Oracle almacena todos los datos de la tabla anidada en una sola tabla, que asocia con la tabla relacional o tabla de objetos.
Hasta aquí llegamos con esta segunda parte sobre los tipos de datos que existen en Oracle. No hemos visto como se verian estos datos dentro de una tabla, ello lo veremos cuando desarrollemos proyectos con esta genial base de datos, primero es importante conocer los detalles teóricos sobre ellos.
Ten Paciencia, lo que quiero es que conozcas bien los tipos de datos en Oracle Database y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte y última veremos otros tipos de datos en Oracle Database.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Oracle DB
- 27-03-2023
- 30-03-2023
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)