Una vez que el tipo de objeto ha sido definido, éste puede ser utilizado para declarar variables de objetos de ese tipo en cualquier bloque PL/SQL, subprograma o paquete. Ese tipo de objeto lo puedes utilizar como tipo de dato para una variable, atributo, elemento de una tabla, parámetro formal, o resultado de una función, de igual manera que se utilizan los tipos de datos habituales como VARCHAR
o NUMBER
.
Por ejemplo, para declarar una variable denominada u1, que va a permitir almacenar un objeto del tipo Usuario, debes hacer la siguiente declaración:
u1 Usuario;
En la declaración de cualquier procedimiento o función, incluidos los métodos del mismo tipo de objeto o de otro, se puede utilizar el tipo de dato objeto definido para indicar que debe pasarse como parámetro un objeto de dicho tipo en la llamada. Por ejemplo pensemos en un procedimiento al que se le debe pasar como parámetro un objeto del tipo Usuario:
PROCEDURE setUsuario(u IN Usuario)
La llamada a este método se realizaría utilizando como parámetro un objeto, como el que podemos tener en la variable declarada anteriormente:
setUsuario(u1);
De manera semejante una función puede retornar objetos:
FUNCTION getUsuario(codigo INTEGER) RETURN Usuario
Los objetos se crean durante la ejecución del código como instancias del tipo de objeto, y cada uno de ellos pueden contener valores diferentes en sus atributos.
El ámbito de los objetos sigue las mismas reglas habituales en PL/SQL, es decir, en un bloque o subprograma los objetos son creados (instanciados) cuando se entra en dicho bloque o subprograma y se destruyen automáticamente cuando se sale de ellos. En un paquete, los objetos son instanciados en el momento de hacer referencia al paquete y dejan de existir cuando se finaliza la sesión en la base de datos.
Área del programa donde un determinado elemento existe y puede ser utilizado. Fuera de ese ámbito , o bien no existe o no puede ser usado.