EXES
EL MODELO RELACIONAL
EL LENGUAJE SQL
FUNCIONES SQL
FUNCIONES DE GRUPO
JOIN
SUBCONSULTAS
D.M.L.
D.D.L.
VISTAS
ENTORNO SQL PLUS
PL/SQL
GENERALIDADES PL/SQL
CURSORES
EXCEPCIONES
FUNCIONES
CRÉDITOS
LA COMPAÑÍA
 
Área de Base de datos
  Manual de Iniciación a Oracle
www.exes.es
Tel: 902 360 417
   Principal
 Exes   Contactar 
Tema 12 Generalidades de PL/SQL | Manual de Iniciación a Oracle

TEMA 12
GENERALIDADES DE PL/SQL

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:
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:
Ejemplo de cómo hacer referencia a una variable de sustitución en PL/SQL

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

  • Sintaxis:
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:
Ejemplo de SELECT

PL/SQL
Inserción de Datos

  • Añada nueva información sobre los empleados en la tabla emp:
Inserción de datos

PL/SQL
Actualización de Datos

  • Aumente el salario de todos los empleados de la tabla emp que son Analistas:
Actualización de datos

PL/SQL
Supresión de Datos

  • Suprima filas pertenecientes al departamento 10 de la tabla emp:
Supresión de datos

PL/SQL
Control de Transacciones

  • COMMIT finaliza la transacción actual realizando todos los cambios pendientes en la B.D.
Control de transacciones (COMMIT)
  • ROLLBACK finaliza la transacción actual desechando todos los cambios pendientes.
Control de transacciones (ROLLBACK)

PL/SQL
Control de Transacciones

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

  • Sintaxis:
Sintaxis te la sentencia IF

PL/SQL
Flujo de IF-THEN-ELSE

Flujo de IF-THEN-ELSE

PL/SQL
Flujo de IF-THEN-ELSIF

Flujo de IF-THEN-ELSIF

PL/SQL
Condiciones Booleanas

Condiciones Booleanas

PL/SQL
Bucle Básico: LOOP

  • Sintaxis:
Sintaxis de bucle básico LOOP
  • Donde condición es una expresión o variable booleana (TRUE, FALSE o NULL).

PL/SQL
Bucle FOR

  • Sintaxis:
Sintaxis de 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

  • Sintaxis:
Sintaxis de 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

  • Ejemplo:
Ejemplo de etiquetas y loops anidados

S.Q.L.
Ejercicios Bloques Anónimos

Ejercicios
  • 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.  
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
   ‹ PL/SQL       subir       Cursores ›   
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es