|
PL/SQL Generalidades de PL/SQL (I)
- Comentarios en PL/SQL:
- Anteponga a los comentarios de una sola línea dos guiones (--) a modo de prefijo.
- Coloque comentarios de varias líneas entre /* y */.
- Operadores de PL/SQL:
| **, NOT | Exponenciación, negación lógica |
| +, - | Identidad, negación |
| *, / | Multiplicación, división |
| +, -, || | Suma, resta, concatenación |
| =, !=, <, >, <=, >=, IS NULL, LIKE, BETWEEN, IN | Comparación |
| AND | Conjunción |
| OR | Inclusión |
PL/SQL Generalidades de PL/SQL (II)
- Bloques Anidados y Ámbito de la Variable:
PL/SQL Generalidades de PL/SQL (III)
- Para hacer referencia a una variable de sustitución en PL/SQL debe anteponer a su nombre dos puntos (:) a modo de prefijo:
PL/SQL Generalidades de PL/SQL (IV)
- Directrices de Programación para facilitar el mantenimiento del código:
- Documente el código con comentarios.
- Desarrolle una convención de mayúsculas/minúsculas para el código.
- Desarrolle convenciones de nomenclatura para identificadores y otros objetos.
- Sangre el código para facilitar la lectura.
- Evite la ambigüedad entre variables locales, parámetros formales y nombres de columnas de las tablas de la B.D.
PL/SQL Generalidades de PL/SQL (V)
- Cuando trabaje con valores nulos puede evitar algunos de los errores más habituales si recuerda las siguientes reglas:
- Las comparaciones en las que se incluyen valores nulos siempre resultan NULL.
- Si se aplica el operador lógico NOT a un valor nulo resulta NULL.
- En las sentencias de control condicionales, si la condición resulta NULL, no se ejecutarán las sentencias asociadas.
PL/SQL Sentencias SQL en PL/SQL
- SELECT recupera exactamente UNA fila.
- INSERT añade una fila.
- UPDATE modifica una o más filas existentes.
- DELETE suprime una o más filas existentes.
- COMMIT hace permanentes todas las modificaciones pendientes.
- ROLLBACK elimina todas las modificaciones pendientes.
- SAVEPOINT marca un punto intermedio en el procesamiento de las transacciones.
PL/SQL Sentencia SELECT
- Recuerde, sólo se debe de recuperar una fila. Más de una fila provocará errores.
PL/SQL Ejemplo de SELECT
- Recupere la suma de los salarios de todos los empleados de un departamento específico:
PL/SQL Inserción de Datos
- Añada nueva información sobre los empleados en la tabla emp:
PL/SQL Actualización de Datos
- Aumente el salario de todos los empleados de la tabla emp que son Analistas:
PL/SQL Supresión de Datos
- Suprima filas pertenecientes al departamento 10 de la tabla emp:
PL/SQL Control de Transacciones
- COMMIT finaliza la transacción actual realizando todos los cambios pendientes en la B.D.
- ROLLBACK finaliza la transacción actual desechando todos los cambios pendientes.
PL/SQL Control de Transacciones
PL/SQL Control Flujo de Ejecución
- Puede modificar el flujo lógico de sentencias utilizando sentencias IF condicionales y estructuras de control de bucles.
- Sentencias IF condicionales:
- IF-THEN
- IF-THEN-ELSE
- IF-THEN-ELSIF
- Control de bucles:
- Bucle básico LOOP
- Bucle FOR
- Bucle WHILE
PL/SQL Sentencia IF
PL/SQL Flujo de IF-THEN-ELSE
PL/SQL Flujo de IF-THEN-ELSIF
PL/SQL Condiciones Booleanas
PL/SQL Bucle Básico: LOOP
- Donde condición es una expresión o variable booleana (TRUE, FALSE o NULL).
PL/SQL Bucle FOR
- No declare el índice; se declara implícitamente como un BINARY_INTEGER. Fuera del bucle el índice no está definido.
- Los límites desde..hasta deben de ser literales numéricos. Pueden ser expresiones que se convierten en valores numéricos.
PL/SQL Bucle WHILE
- La condición se evalúa al inicio de cada iteración
PL/SQL Etiquetas y Loops Anidados
- Puede anidar bucles a varios niveles.
- Utilice etiquetas para distinguir entre los bloques y los bucles.
- Salga al bucle externo con la sentencia EXIT que hace referencia a la etiqueta.
- Los nombres de etiquetas deben ir antes de la palabra LOOP y entre
los delimitadores << >>.
PL/SQL Etiquetas y Loops Anidados
S.Q.L. Ejercicios Bloques Anónimos
- Basados en las tablas Emp & Dept del esquema del usuario Scott de Oracle
- Actualizar los vendedores con una comisión mayor que 350$ con un incremento del 15% de su salario. Si la operación afecta a mas de tres empleados, deshacer la transacción, en cualquier otro caso validar la transacción. Informar por pantalla de la operación realizada.
- Insertar en la tabla TEMP 100 filas. En la primera columna se insertará un índice secuencial (1, 2, 3...) y en la segunda columna un comentario indicando si el número generado es par o impar.
- Actualizar el trabajo a DIRECTOR a todos aquellos empleados cuyo salario sea mayor que 2000$. Almacenar el número de empleados actualizados por la operación en la tabla TEMP. Si los afectados son mas de cinco personas, borrar los empleados cuyo salario sea mayor que 3000$, insertar en la tabla TEMP el número de empleados borrados y validar la transacción.
- Calcular por medio de un bloque PL/SQL 9i anónimo el total de ganancias de los empleados (salario y comisión) y cuántos de éstos tienen un salario superior a 2000$ para todos los departamentos de la empresa.
|