La sintaxis de Oracle está basada en lenguaje SQL, con la puntualización de que permite declarar objetos y almacenarlos como tal, arrays de objetos, etc.

Tipos de objetos

Con Oracle podemos declarar tipos de objetos mediante CREATE TYPE:

Tipos de objetos en Oracle - definición básica

Tipos de objetos en Oracle - atributos

Tipos de objetos en Oracle - ejemplo completo

Tipos de objetos en Oracle - tipos anidados

Tipos de objetos en Oracle - instanciación

Métodos

Inicialmente solo especificamos el esqueleto de los métodos en la definición del tipo. Para programar el código operativo utilizamos CREATE OR REPLACE TYPE BODY:

Métodos en tipos Oracle - definición del esqueleto

Métodos en tipos Oracle - CREATE OR REPLACE TYPE BODY

Métodos en tipos Oracle - implementación de la lógica

Métodos en tipos Oracle - ejemplo de uso

Tablas de objetos

Los tipos de objetos no sirven para almacenar datos de forma permanente. Para ello creamos tablas basadas en los tipos definidos previamente. Un aspecto importante: al insertar objetos con tipos anidados, hay que referenciar el TIPO del campo (no su nombre asignado). Por ejemplo, usamos DIRECCION(...) en lugar del nombre del campo DIREC(...).

Tablas de objetos - creación basada en tipos

Tablas de objetos - inserción de datos

Tablas de objetos - inserción con objetos anidados

Tablas de objetos - consultas sobre objetos

Tablas de objetos - acceso a atributos anidados

Varrays

Los varrays son arrays del tipo que nosotros le indiquemos y de un tamaño definido previamente. Una limitación importante es que no se puede modificar su información en solitario: al actualizar un elemento hay que reguardar todos los elementos del array.

Varrays en Oracle - definición

Varrays en Oracle - inserción de datos

Varrays en Oracle - consultas

Varrays en Oracle - actualización (todos los elementos)

Varrays en Oracle - ejemplo completo

Herencia de tipos

La herencia de tipos en Oracle funciona como la herencia de programación orientada a objetos. Un tipo base puede heredarse a un subtipo utilizando la sintaxis UNDER:

Herencia de tipos - tipo base

Herencia de tipos - subtipo con UNDER

Herencia de tipos - NOT FINAL para permitir herencia

Herencia de tipos - tablas con herencia

Herencia de tipos - inserción en subtipos

Herencia de tipos - consultas polimórficas

Herencia de tipos - ejemplo completo con PERSONA y ALUMNO

Herencia de tipos - resumen