Definición de Tipos

Como se definen los objetos en la BBDD Oracle

En la BBDD Oracle, la definición de objetos se realiza con las sentencias SQL:

CREATE TYPE ...
CREATE TYPE BODY ...

La sentencia CREATE TYPE define la parte pública del Objeto que puede contener una definición de estructura y/o una definición de métodos (MEMBER FUNCTION)

La sentencia CREATE TYPE BODY solo se utiliza si el objeto define métodos y en esta sentencia se indica la implementación de los métodos. Esta parte es la parte privada del objeto.

Ejemplos:

Objeto con un método asociado y su implementación:

CREATE TYPE data_typ1 AS OBJECT 
   ( year NUMBER, 
     MEMBER FUNCTION prod(invent NUMBER) RETURN NUMBER 
   ); 
/
 
CREATE TYPE BODY data_typ1 IS   
      MEMBER FUNCTION prod (invent NUMBER) RETURN NUMBER IS 
         BEGIN 
             RETURN (year + invent);
         END; 
      END; 
/

Objeto sin métodos asociados:

CREATE TYPE customer_typ_demo AS OBJECT
    ( customer_id        NUMBER(6)
    , cust_first_name    VARCHAR2(20)
    , cust_last_name     VARCHAR2(20)
    , cust_address       CUST_ADDRESS_TYP
    , phone_numbers      PHONE_LIST_TYP
    , nls_language       VARCHAR2(3)
    , nls_territory      VARCHAR2(30)
    , credit_limit       NUMBER(9,2)
    , cust_email         VARCHAR2(30)
    , cust_orders        ORDER_LIST_TYP
    ) ;
/

Objetos VARRAY sin métodos:

CREATE TYPE phone_list_typ_demo AS VARRAY(5) OF VARCHAR2(25);