Hola,
Cita: ¿Qué es un TYPE? y por TYPE me refiero cuando uno dice CREATE TYPE....
Este es un buen tema, los objetos TYPE son la respuesta de Oracle a la programacion orientada a objetos en base de datos, tienen constructores, propiedades y metodos, las propiedades pueden ser de tipos de datos nativos, como varchar2 o number, o bien de otros TYPEs, y los metodos pueden ser procedimientos o funciones.
Por ejemplo,
Código:
SQL> CREATE OR REPLACE TYPE direcciones AS OBJECT
2 (
3 calle varchar2(30),
4 numero varchar2(10),
5 planta varchar2(10),
6 puerta varchar2(10)
7 )
8 /
Type created.
SQL>
SQL> CREATE OR REPLACE TYPE personas AS OBJECT
2 (
3 id number(10),
4 nombre varchar2(30),
5 apellido varchar2(30),
6 direccion direcciones,
7 MEMBER PROCEDURE print_id,
8 MEMBER PROCEDURE print_direccion ( SELF IN OUT NOCOPY personas )
9 )
10 /
Type created.
SQL>
SQL>
SQL> CREATE OR REPLACE TYPE BODY personas AS
2 MEMBER PROCEDURE print_id IS
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE(id);
5 END;
6 MEMBER PROCEDURE print_direccion ( SELF IN OUT NOCOPY personas ) IS
7 BEGIN
8 DBMS_OUTPUT.PUT_LINE(direccion.calle);
9 DBMS_OUTPUT.PUT_LINE(direccion.numero);
10 DBMS_OUTPUT.PUT_LINE(direccion.planta);
11 DBMS_OUTPUT.PUT_LINE(direccion.puerta);
12 END;
13 END;
14 /
Type body created.
SQL>
SQL> DECLARE
2 per personas;
3 BEGIN
4 --constructor
5 per := personas(1, 'Nombre', 'Apellido',direcciones('Ramblas de Catalunya', '1', '2', 'A'));
6
7 --mostrar atributos
8 DBMS_OUTPUT.PUT_LINE(per.nombre || ' ' || per.apellido);
9
10 --ejecutar metodos
11 per.print_id();
12 per.print_direccion();
13 END;
14 /
Nombre Apellido
1
Ramblas de Catalunya
1
2
A
PL/SQL procedure successfully completed.
Cita: Qué es la cárga útil de la estructura oracle?
Esto no lo entiendo, ¿puede ser que sea alguna traduccion del nombre en ingles?
Saludos