Rellenar columnas con datos derivados.
A partir de Oracle 8 se ha podido ver la introducción de objetos dentro de la Base de Datos, el concepto de definir un objeto es similar al de crear una Clase en Java o en C Una columna objeto se basa en un objeto, y se podrá cargar en ella tantos datos como atributos tenga ese objeto, mientras que en una columna normal solo se permite un solo valor.
CREATE OR REPLACE TYPE tipo_caracteristicas AS OBJECT ( caracteristica_nombre VARCHAR2(60), caracteristica_tipo VARCHAR2(12), caracteristica_elevacion NUMBER ); /
Este tipo creado podrá ser la base para crear nuevos objetos y cada objeto nuevo creado tendrá los atributos correspondientes (caracteristica_nombre, caracteristica_tipo y característica_ elevación.
Estos tipos de objetos pueden ser almacenados bien en tablas objeto, o columnas objeto.
Ejemplo:
Definimos el Tipo de Objeto
CREATE TYPE tipo_persona AS OBJECT (nombre VARCHAR(30), dni NUMBER(9)) not final; CREATE TYPE tipo_empleado UNDER tipo_persona (empid NUMBER(5)); CREATE TABLE personal (deptno NUMBER(3), deptname VARCHAR(30), person tipo_persona);
Creamos el Fichero de Control derivados.ctl
LOAD DATA INFILE 'c:/SQL_LOADER/derivados.dat' INTO TABLE personal FIELDS TERMINATED BY ',' (deptno INTEGER EXTERNAL(3), deptname CHAR, 1 person COLUMN OBJECT TREAT AS tipo_empleado → declara derivado del tipo empleado (name CHAR, dni INTEGER EXTERNAL(9), 2 empid INTEGER EXTERNAL(5))) → se acepta por ser derivado del tipo empleado, si fuera declarado por defecto como objeto tipo persona, no se admitiría ya que ese atributo no le pertenece a ese tipo.
Datafile (sample.dat)
101,Mathematics,Johny Q.,301189453,10249, 237,Physics,»Albert Einstein»,128606590,10030,