Dominando PL/SQL: Preguntas Clave y Conceptos de Bases de Datos Oracle
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 7,08 KB
Conceptos Fundamentales de PL/SQL y Bases de Datos Oracle
Este documento recopila una serie de preguntas y respuestas esenciales sobre PL/SQL y la gestión de bases de datos Oracle. Aborda temas clave como la estructura de los paquetes, el manejo de excepciones, la creación de triggers y funciones, la invocación de procedimientos, y la comprensión de tipos de datos y vistas. Es un recurso valioso para reforzar conocimientos y prepararse para desafíos técnicos en el ámbito de las bases de datos.
Previa 15: Estructura y Contenido de un Paquete
Q: ¿Qué puede almacenar un paquete (package)? ¿Triggers, procedimientos, cursores, vistas, constantes…?
R: Un paquete puede almacenar procedimientos, funciones, cursores, tipos de datos y variables.
Previa 14: Declaración de Excepciones
Q: Una excepción se puede declarar en el encabezado de un... ¿paquete, procedimiento, bloque de excepción?
R: En el encabezado de un procedimiento (procedure).
Previa 13: Creación de un Trigger para Aumento Salarial
Q: Realice un trigger que aumente el salario en un 15% a partir de la siguiente tabla: Empleado(código, salario, fecha).
R:
CREATE OR REPLACE TRIGGER Porcentaje
AFTER INSERT ON EMPLEADO
FOR EACH ROW
DECLARE
sal number :=salario*0.15;
BEGIN
dbms_output.put_line(sal);
END;Previa 12: Uso de RAISE_APPLICATION_ERROR
Q: ¿Para qué sirve la excepción RAISE_APPLICATION_ERROR?
R: Sirve para desplegar un mensaje de error personalizado al producirse una excepción PL/SQL.
Previa 11: Modificación de Tablas desde Funciones (SELECT)
Q: ¿Es posible que una función modifique una tabla si la invocamos desde un SELECT?
R:
Previa 10: Parámetros en Funciones
Q: ¿Una función recibe parámetros? Ejemplifique.
R: Una función puede recibir tantos parámetros como queramos. Para expresarlo, se colocan los parámetros separados por comas dentro de los paréntesis. Veamos rápidamente la sintaxis para que la función de antes reciba dos parámetros: el primero, el nombre al que saludar, y el segundo, el color del texto.
function escribirBienvenida(nombre,colorTexto){
document.write("<FONT color=" + colorTexto + ">")
document.write("<H1>Hola " + nombre + "</H1>")
document.write("</FONT>")
}Llamaríamos a la función con esta sintaxis. Entre los paréntesis colocaremos los valores de los parámetros.
var miNombre = "Pepe"
var miColor = "red"
escribirBienvenida(miNombre,miColor)Previa 9: Elementos Fundamentales de un Trigger
Q: Para un trigger, ¿qué es fundamental: ROW, FOR EACH ROW, BEFORE, etc.?
R: FOR EACH ROW, STATEMENT, BEFORE, AFTER, INSTEAD OF, ON, WHEN.
Previa 8: Invocación de Procedimientos
Q: Para ejecutar un procedimiento, ¿es necesario invocarlo según lo que hace? Justifique. Dado el siguiente procedimiento:
PROCEDURE ganador(a NUMBER, b VARCHAR, c DATE) IS
BEGIN
INSERT INTO table1 VALUES(4, 'hola', '1/07/2010');
END ganador;¿Cómo se invoca al procedimiento?
R: Se invoca de las siguientes maneras:
- Desde SQL*Plus o un cliente SQL:
EXECUTE ganador; - Desde un bloque PL/SQL:
BEGIN ganador; END;
Previa 7: Creación de una Función para Cálculos
Q: Realice una función para trabajar con la siguiente tabla:
Jugadores (Rut, valor1, valor2)
Ejemplo de datos:
- A2, 200, 100
- C2, 500, 200
La función debe retornar 0 si es correcto o 1 si es incorrecto. Se pide que, para todos los jugadores con valor2 superior a 100, se agregue una columna con el promedio (valor1, valor2).
Previa 6: Invocación de la Función de la Previa 7
Q: ¿Cómo invocaría la función de la Previa 7?
Previa 5: Verdadero o Falso sobre Paquetes
Q: Verdadero o Falso:
- El contenido de un paquete puede ser compartido por muchas aplicaciones.
- Es posible definir la construcción de un paquete como privada.
- No se pueden pasar parámetros en un paquete.
Previa 4: Definiciones Clave
Q: Definiciones:
- ¿En qué consisten los estamentos
STATIC RECORD GROUP? - ¿Qué es la alerta
GET_ALERT_PROPERTY? - ¿Qué es
SET SERVEROUTPUT? - ¿Qué hace la función
SHOW_ALERT?
R(C): El paquete DBMS_OUTPUT implementa una cola en la cual se van almacenando los mensajes de salida. Si queremos que los mensajes aparezcan por pantalla, tenemos que activar la opción SERVEROUTPUT:
SET ServerOutput ON;R(D): La función Show_Alert devuelve el número ALERT_BUTTON1, ALERT_BUTTON2 o ALERT_BUTTON3 dependiendo de qué botón haya sido pulsado.
Ejemplo:
DECLARE
boton NUMBER;
BEGIN
/*Mostramos la alerta BIENVENIDA y
guardamos el botón pulsado*/
boton := Show_Alert('Bienvenida');
/*Miramos qué botón se ha pulsado*/
IF boton = ALERT_BUTTON1 THEN
/*Sólo hay uno, no hacemos nada*/
NULL;
END IF;
/*Rellenamos el formulario*/
Execute_Query;
END;Previa 3: Tipo de Dato LONG
Q: ¿Cuál es el tipo de dato LONG?
R: Este tipo, muy similar a VARCHAR2, se trata de una cadena de longitud variable de hasta 32.760 bytes. Los tipos de datos LONG de una base de datos Oracle son capaces de almacenar hasta dos gigabytes.
Previa 2: Ejemplos de Tipos de Datos
Q: Entregue ejemplos de tipos de datos:
VARCHAR2(40): "Hello World"LOB: texto, imágenes, videos y sonidosINTEGER: 123456789, -124000BIG_TEXT:
Previa 1: Uso de NEXTVAL en INSERT
Q: ¿Para qué se usa la sentencia NEXTVAL en un INSERT?
R: Para obtener el siguiente valor de una secuencia.
CREATE SEQUENCE SQ_PRODUCTOS;
SELECT SQ_PRODUCTOS.NEXTVAL
FROM DUAL;