Fundamentos de Programación Procedimental con PL/SQL en Oracle
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,02 KB
Conceptos Fundamentales de PL/SQL
Definición
PL/SQL es un lenguaje procedimental diseñado por Oracle para trabajar con la base de datos. Soporta todos los comandos de consulta y manipulación de datos, aportando al lenguaje SQL las estructuras de control propias de los lenguajes procedimentales.
Propósito
Permite construir programas que incluyen bloques anónimos, procedimientos, funciones y paquetes.
Estructura del Bloque PL/SQL
Un programa PL/SQL se estructura utilizando bloques. La unidad mínima de trabajo es el bloque, y cada bloque puede incluir tres secciones:
- DECLARE (Sección Declarativa)
- BEGIN (Sección Ejecutable)
- EXCEPTION (Manejo de Errores)
1. DECLARE: Sección Declarativa
En esta sección se declaran todas las constantes, variables, cursores y excepciones de usuario.
Tipos de Datos Comunes
- Tipos de datos más comunes:
NUMBER,CHAR,VARCHAR,DATE,BOOLEAN,REAL,FLOAT,INTEGER.
Sentencias Declarativas
- Variable:
<nombre_variable> <tipo> [ NOT NULL ] [ { := | DEFAULT } <valor> ] - Constante:
<nombre_constante> CONSTANT <tipo> := <valor> - Asignación:
variable := <valor>
Declaración Implícita (Atributos de Referencia)
Estos atributos permiten declarar variables basadas en la estructura de otras variables o campos de tabla, asegurando la compatibilidad de tipos.
- Atributo %TYPE:
<var1> <var2%TYPE>o<var> <tabla.campo%TYPE> - Atributo %ROWTYPE: Permite declarar una variable que representa una fila completa de una tabla o un cursor.
var tabla%ROWTYPEvar cursor%ROWTYPE
2. BEGIN: Sección Ejecutable
Contiene las sentencias ejecutables del bloque, incluyendo lógica de control y manipulación de datos.
Control de Decisión
IF
IF <condición> THEN
<instrucciones>
[ { ELSIF <condición> THEN
<instrucciones> } ]
[ ELSE <instrucciones> ]
END IF;Control de Flujo (Bucles)
WHILE
WHILE <condición> LOOP
<instrucciones>
END LOOP;FOR
FOR <variable> IN [ REVERSE ] <valorinicial>.....<valorfinal> LOOP
<instrucciones>
END LOOP;Asignación de Valores mediante Consulta
La cláusula SELECT ... INTO se utiliza para asignar el valor devuelto por una consulta a una o varias variables.
- Sintaxis:
SELECT <columnas> INTO <variables> FROM <tablas> [ WHERE . . . ] - Restricción: El resultado de la expresión
SELECT ... INTOdebe ser una sola fila. - Manejo de Errores Implícitos:
- Si el resultado es más de una fila, se carga la excepción TOO_MANY_ROWS.
- Si el resultado no devuelve valor, se carga la excepción NO_DATA_FOUND.
Interacción con el Usuario (Salida Estándar)
El procedimiento DBMS_OUTPUT.PUT_LINE() dirige la salida a la salida estándar del entorno de ejecución.
3. EXCEPTION: Manejo de Excepciones
Contiene los manejadores de excepciones o rutinas encargadas de controlar errores durante la ejecución del bloque.
Definición de Excepción
Una excepción es una condición de error específica. Un programa PL/SQL produce una excepción específica cuando detecta un error, pasando el control al manejador de excepciones del programa principal.
- Oracle identifica cerca de 20 excepciones predefinidas, incluyendo NO_DATA_FOUND y TOO_MANY_ROWS.
- El usuario también puede definir y manejar sus propias excepciones.
Cursores
Un cursor es un área de trabajo en memoria para una sentencia SQL. Permite definir un puntero al resultado de una expresión SELECT que devuelve varias filas.
Operación del Cursor
- Se declara un objeto tipo cursor con una expresión
SELECT. - Se abre el cursor con
OPEN cursor. - Se extrae la fila del cursor con la instrucción
FETCH. - Para el control y manejo del cursor, el objeto de tipo cursor maneja atributos implícitos: %FOUND, %NOTFOUND, %ISOPEN, %ROWCOUNT.
- El cursor se cierra con
CLOSE cursor.