Sunteți pe pagina 1din 8

EXAMEN 4

1.- ¿Qué elementos se definen dentro de una TABLA? Explícalos. (Pista: ¿se definen funciones o
procedimientos? ¿campos? ¿claves? ¿disparadores? ¿cursores? ¿objetos? ¿atributos?
¿métodos?......) NOTA: Puntos a desarrollar
- Campos y tipos: Los campos son cada una de las columnas que forman la tabla y los tipos de campo
pueden ser:
Number (Campos numéricos)
Varchar (campos alfanuméricos)
Date (campos de tipo fecha)
Tambien hay campos de tipo ojeto, por ejemplo
Dirección tipo_direccion.
- Claves primarias. Es una clave que identifica de forma única un registro, por lo tanto Solo existe una
Clave Primaria (Unica). (PK)
- Claves foráneas: Es la que identifica una columna o un grupo de columnas en una tabla con las
columnas de otra tabla distinta.
2. - Al intentar compilar los dos procedimientos seguidos nos aparece el siguiente error, ¿a
qué se debe y cómo se soluciona?

Como hay dos bloques PL/SQL de procedimientos seguidos si los ejecutamos al mismo tiempo al
compilar da ese error porque no llega a ejecutar el primero antes de empezar con el segundo.
Para solucionar este problema hay que poner una barra / entre los dos bloques.

3.- Completa los espacios del siguiente código con la definición de variables o con cláusulas
correspondientes sobre los puntos suspensivos:
1- NUEVAciudadVar
2- Departamento
3- DBMS_OUTPUT.PUT_LINE
4- DEPT
5- NUEVAciudadVar
4.- ¿Cuáles son las diferencias entre PROCEDURE y FUNCTION?
El procedimiento y la function son un conjunto de sentencias que se ejecutan cada vez que se
invoquen.
La diferencia entre el procedimiento y la function es que la Function siempre devuelve un valor y se
usa la palabra reservada RETURN para devolver dicho valor y siempre hay que poner los
paréntesis en la llamada a la function.
El procedure no devuelve nada.
1.- ¿Qué tres tipos de operaciones se pueden realizar sobre los registros de una tabla de objetos?
NOTA: Puntos a desarrollar
- Insert: Se utiliza para insertar o crear nuevos registros en una tabla. Se tienen que insertar los mismos
campos que hay en la tabla.
INSERT INTO nombre_tabla values(valores de los campos (tienen que ser los mismos que hay en la
tabla))
- Update: Se usa para actualizar los valores de los registros de las tablas
UPDATE nombre_tabla SET campos a actualizar WHERE registros a actualizar.
- Delete: Se utiliza para borrar un registro.
DELETE FROM tabla where registro que queramos borrar = ‘lo que sea’
2.- ¿Para qué se utiliza la cláusula NOT_FINAL en la definición de un tipo objeto? ¿Y cómo ello
afecta a la hora de eliminar (DROP) este tipo de objetos?
La clausula NOT FINAL se usa para que un subtipo pueda heredar. Esta clausula crea fuertes
dependencias que solo se pueden liberar con FORCE al final de DROY TYPE…..

3.- Describe qué hace este trozo de código PL/SQL. (consejo: utiliza el mismo orden en el que
aparecen las sentencias en el script)
Crea una tabla llamada tabla_empleados con los mismos campos de la tabla empleados y le asigna al
campo id_empleado una primary key.
Comienza el bloque anónimo (DECLARE)
Declara las variables, una de ellas tipo REF
Comienzan las instrucciones del programa (BEGIN)
Inserta un registro en la tabla empleados con los valores del los campos del tipo tipo_empleado
Se da un valor a la referencia para que apunte al empleado 370 y después de desreferencia para que
devuelva los valores nombre y apellidos y los mostrara por pantalla.

4.- Completa los espacios del siguiente código con la definición de variables o con cláusulas
correspondientes sobre los puntos suspensivos:

1- GATO
2- Replace
3- Self
4- Self.
5- Gato

EXAMEN 5
1.- ¿Qué finalidad tienen los DISPARADORES?
Un trigger o disparador es un objeto que se ejecuta cuando sucede algún evento en la tabla a la que
esta asociada (insert, update o delete)
La clausula BEFORE/AFTER indica el momento en el que queremos que se ejecute (Antes o
después de que suceda el evento)
FOR EACH ROW indica que se ejecutara por cada fila
WHEN con esta clausula podemos indicar una codicion de disparo
Las instrucciones iran entre BEGIN y END.

2.- Completa los espacios del siguiente código con la definición de variables o con cláusulas
correspondientes sobre los puntos suspensivos:

1- DEPT
2- SIN DATOS EXCEPTION;
3- Lugar_var
4- IF
5- DBMS_OUTPUT.PUT_LINE

3.- ¿Cómo se maneja una EXCEPCIÓN definida por el usuario? (Pistas: ¿Dónde y cómo se define?
¿Cómo se lanza? ¿Dónde y cómo se gestiona?)

SE DEFINE EN EL DECLARE Y HAY QUE PONER EL NOMBRE DE LA EXCEPCION Y LA


CLAUSULA EXCEPCION
SE LANZA CON RAISE CUANDO SE CUMPLE UNA EXCEPCION
SE GESTIONA EN EL BLOQUE DE EXCEPCION

1.- Al intentar eliminar el tipo objeto “animal” nos aparece el siguiente error, ¿a qué se debe y
cómo se soluciona?
Esto sucede porque no se puede borrar un objetos que tenga depencias, para poder hacerlo hay que
ejecutar DROP TYPE animal FORCE;

2.- ¿Cuántos constructores se pueden definir para un mismo objeto? ¿qué les diferencia? Y si no se
define ninguno, ¿todavía se puede construir el objeto?

Son métodos que crean nuevas instancias u objetos de un tipo de objeto o clase. Se definen dentro
de la definición de los tipos de objeto.
Deben tener el mismo nombre que la clase a la que pertenecen y hay que indicar el numero y el tipo
de parámetros que van a recibir.

Se pueden definir infinitos, los que queramos.

Si se puede construir aunque no se defina ninguno porque existe un constructor por defecto

3.- ¿Qué dos tipos de colecciones de datos hay? ¿en qué se diferencian?
Arrays y tablas anidadas
Arrays define un numero fijo de datos. Todos los elementos que lo componen poseen un índice
asociado que indica la posición que ocupa dentro del array.
Y tablas anidadas es un conjunto de elementos del mismo tipo. Se diferencia del array porque no
tienen un orden predefinido.
Tienen restrinciones:
- Solo pueden tener una columna
- El dato que almacenan puede ser básico o definido por el usuario.

4.- Describe qué hace este trozo de código PL/SQL. (consejo: utiliza el mismo orden en el que
aparecen las sentencias en el script)

Primero crea un tipo llamado perro que hereda de la tabla animal con un campo nombre
Luego define un constructor llamado perro con un parámetro de entrada nombre
Crea el cuerpo del tipo perro y llama al constructor.
Da valores con la clausula self (nombre, especie, numpatas y sonido) para que nos devuelva esos
valores
Fin del tipo perro.
EXAMEN 6
1.- Lista y explica qué 3 tipos de bucles (loops) se pueden implementar dentro de un bloque
PL/SQL

For: Se repite tantas veces como le indiquemos en los identificadores de principio y final.

For contador in inicio..final loop


-- instrucciones
End loop;

While: Se repite mientras se cumpla la condicion.

While (expresión) loop


--instrucciones
End loop;

Loop: Se repite tantas veces como sea necesario hasta que se fuerza su salida con exit.

Loop
-- instrucciones
If (expresión) then
-- instrucciones
Exit
End if;
End loop;

2.- Describe qué hace este bloque PL/SQL. (consejo: utiliza el mismo orden en el que aparecen las
sentencias en el script)

Declaramos un procedimiento, donde vamos a pasar el número de empleado y un

incremento numérico.

Mediante un SELECT, buscamos el salario de ese empleado (mediante su emp_no) y

lanzamos una excepción si no existe ese salario.

Actualizamos el salario antiguo con el incremento.

Miramos las excepciones definidas por Oracle donde, buscamos si hay datos o no del

empleado y si el salario es nulo o no existe


3.- Completa los espacios del siguiente código con la definición de variables o con cláusulas
correspondientes sobre los puntos suspensivos:

1- PROCEDURE
2- ITERADOR
3- VarApellido
4- Notfound
5- Loop

4.- Al intentar compilar la tabla “auditemple” nos aparece el siguiente error, ¿a qué se debe y cómo
se soluciona?

Ese error nos sale porque dice que ya existe un objeto con ese nombre. Simplemente llamándola de
otra forma, por ejemplo auditaemplebis estaría solucionado el error.

3.- Si tanto una tabla como un objeto almacenan datos, ¿cuál es la gran diferencia entre la manera
en la que se lleva a cabo dicho almacenamiento?
APARTE:
Tabla: se basa en el principio de atomicidad de los atributos

Objeto: guardamos colecciones de datos


Cursores:
Son las diferentes estructuras que nos permiten recorrer una consulta SELECT.
Los cursores pueden ser de dos tipos:
IMPLICITOS: Son los que se usan para operaciones con SELECT INTO, es decir, cuando la consulta
devuelve solo un registro.
EXPLICITOS: Son los que controla el programador cuando la consulta devuelve varios registros,
aunque a veces se usan en consultas que devuelven un solo registro porque son mas rapidos.

S-ar putea să vă placă și