Sei sulla pagina 1di 34

Introducción a PL/SQL.

Declaración de Variables. Escritura


de sentencias de ejecución.
2

Componentes de Oracle

La versión
actual es 12c
3

Componentes de Oracle
1. Oracle Database es diseñada para almacenar y manejar la información de la
compania. De esta manera, la gestión permite reducir costos y ofrece una gran
performance para obtener grandes volúmenes de información.

2. Oracle Application Server provee una plataforma para soportar aplicaciones,


e integración de funciones que incluyen el lenguaje Java y Servicios de Web.

3. Oracle Enterprise Manager, es una consola que permite, la integración y el


control de gestión de las distintas aplicaciones que son soportadas por el
Application Server. Permite ejecutar trabajos, ejecutar políticas de seguridad,
diagnosticar y monitorear la performance y automatizar otro tipo de tareas.
4

Introducción a PL/SQL
Antes de comenzar con el curso, es bueno conocer cuál es el modelo de datos que vamos a utilizar para
aprender sobre este lenguaje. A continuación se detallan las tablas y sus relaciones :

LOCATIONS DEPARTMENTS JOB_HISTORY


LOCATION_ID
DEPARTMENT_ID EMPLOYEE_ID
STREET_ADDRESS
DEPARTMENT_NAME START_DATE
POSTAL_CODE 0…1 *
MANAGER_ID 0…1 * END_DATE
CITY
LOCATION_ID JOB_ID
STATE_PROVINCE
DEPARTMENT_ID
COUNTRY_ID * 0…1

0…1 * * *
*
0…1 EMPLOYEES
COUNTRIES EMPLOYEE_ID 1
1
MANAGER_ID
COUNTRY_ID
DEPARTMENT_ID JOBS
COUNTRY_NAME
0…1 FIRST_NAME
REGION_ID JOB_ID
LAST_NAME 1
JOB_TITLE
* EMAIL
* MIN_SALARY
0…1 PHONE_NUMBER
MAX_SALARY
HIRE_DATE
REGIONS
JOB_ID
REGION_ID * SALARY
REGION_NAME COMMISSION_PCT
5

Introducción a PL/SQL
• employees => Contiene el detalle de cada empleado que trabajan para un
departamento. Algunos de esos empleados no están asociados a
ningún departamento.
• departments => Contiene el detalle de los departamentos en donde trabajan los
empleados. Cada departamento puede tener una relación que
representa a un manager de un departamento en la tabla de
empleados.
• jobs => Contiene lo tipos de trabajo que puede tener cada empleado.
• job_history => Contiene el historial de trabajos de cada empleado. Si el empleado cambia de departamento
relacionado con un tipo de trabajo o cambia de tipo de trabajo dentro del mismo
departamento, se inserta un nuevo registro en esta tabla con la información del tipo de
trabajo antiguo.
• locations => Contiene las direcciones de una oficina, almacén, o un sitio productivo de una empresa en un
país en particular.
• regions => Contiene regiones como ser, America, Asia, Europa, etc.
• countries => Contiene países, y su relación con las regiones.
6

Introducción a PL/SQL
Que es PL/SQL ?
• Es un lenguaje procedural que extiende al lenguaje SQL.
• Es el lenguaje de acceso a datos de Oracle standard de las bases de datos
relacionales.
• Construcción procedural de SQL.
7

Entorno de PL/SQL
8

Beneficios de PL/SQL
• Integración procedural con SQL
• Mejora de Performance porque se ejecuta directo en la base de datos
• Desarrollo modularizado de programación ( Importante !!! )
• Integración con otras herramientas de Oracle
• Portabilidad
• Manejo de Excepciones
9

Estructura de Bloque PL/SQL

DECLARE (Opcional)
Variables, Cursores, Excepciones de Usuario
BEGIN (Obligatorio)
Sentencias SQL
Sentencias PL/SQL
EXCEPTION (Opcional)
Acciones cuando ocurre errores
END; (Obligatorio)
10

Tipos de Bloques
Anónimo Procedimiento Función

[DECLARE] PROCEDURE name FUNCTION name


IS RETURN datatype
BEGIN IS
BEGIN BEGIN
-- statements
-- statements -- statements
RETURN value;

[EXCEPTION] [EXCEPTION]
[EXCEPTION]

END; END;
END;
11

Creación de Bloque Anónimo


Escribir y ejecutar en la consola de ISQL*Plus el bloque anónimo
DECLARE
f_name VARCHAR(20);

BEGIN
SELECT first_name
INTO f_name
FROM employees
WHERE employee_id = 100;
END;

La sintáxis se irá aprendiendo en el curso más adelante. El bloque


anónimo obtiene el nombre del empleado cuyo employee_id es 100
y lo almacena en la variable f_name;
12

Salida de mensajes por pantalla


• Habilitar la salida en ISql*Plus con el comando :
SET SERVEROUTPUT ON
• Escribe un mensaje por pantalla utilizando un package y procedure
nativo de Oracle :
DBMS_OUTPUT.PUT_LINE

SET SERVEROUTPUT ON

DBMS_OUTPUT.PUT_LINE(‘ The First Name of the Employee is ‘ || f_name);

13

Testeo de la salida en PL/SQL

SET SERVEROUTPUT ON
DECLARE
f_name VARCHAR(20);
BEGIN
SELECT first_name INTO f_name FROM employees
WHERE employee_id = 100;

DBMS_OUTPUT.PUT_LINE(‘ The First Name of the Employee is ‘ ||


f_name);

END;
14

Declaración de variables en PL/SQL


Las variables pueden ser usadas para :
• Almacenar información temporal.
• Manipular valores almacenados
• Reusabilidad
Veamos un ejemplo…con una sentencia SELECT…
15

Identificadores de Variables
Los identificadores se utilizan para :
• Establecer el nombre de una variable.
• Proveer una convención standarizada para estos nombres, los cuales son :
• Que empiecen con una letra
• Pueden incluír letras o números
• Pueden incluír caracteres especiales como el símbolo del dólar, el
underscore, etc.
• Tienen un límite de 30 caracteres
• No pueden llevar el nombre de palabras reservadas.
16

Declaración de variables en PL/SQL


Las variables son :
• Declaradas e inicializadas en la sección declarativa, “DECLARE”.
• Usar y asignar nuevos valores en la sección de ejecución, “BEGIN”.
• Pasadas como parámetros en los subprogramas de PL/SQL.
• Usadas para almacenar la salida de los subprogramas de PL/SQL.
Veamos algunos ejemplos a continuación…
17

Declaración e inicialización de variables en PL/SQL


18

Tipos de variables en PL/SQL


Todas las variables llevan un “tipo”. Si queremos que la variable almacene :
1. Un valor de “VERDADERO” o “FALSO” el tipo de dato será “BOOLEAN”.
2. Un valor de Fecha el tipo de dato será “DATE”.
3. Un valor numérico el tipo de dato será “NUMBER”.
4. Un valor string o de caracteres el tipo de dato será “VARCHAR2”.
5. Un valor string o de caracteres mayor a 4000, el tipo de dato será “LONG”.
6. Una imagen el tipo de dato será “BLOB”.
19

Utilización de %TYPE Attribute


El atributo %TYPE :
• Es utilizado para declarar una variable que :
• Tenga el mismo tipo de dato de una columna
• Tenga el mismo tipo de dato de otra variable

Veamos algunos ejemplos…


20

Sustitución de Variables
La sustitución de variables se utiliza para ingresar un valor en tiempo de
ejecución y que este pueda cambiar cada vez que ejecutamos la sentencia.
Se utiliza el carácter “&” antes del nombre de la variable.
De esta forma evitamos hacer un hard coding del valor, o sea, poner un valor fijo
para cuando se ejecuta la sentencia. Brinda flexibilidad.
21

Sustitución de Variables
22

Sustitución de Variables
23

Literales en Bloques PL/SQL


Literales :
• Los caracteres y las fechas deben ser encuadrados dentro de las comillas
simples al principio y al final.

• En cambio, los números son valores simples o pueden llevar notaciones


científicas.

• Las sentencias pueden ser continuadas en varias líneas.


24

Como comentar código


Existen 2 formas distintas para comentar código de programación que no
queremos que sea ejecutado por el motor de la base de datos, o para poner un
comentario dentro del código.
• Con el doble guión se puede comentar 1 línea, o varias, pero hay que
escribirlo en cada línea que no queramos que se ejecute.
• Pero cuando tenemos un párrafo que no queremos ejecutar, es mejor utilizar
los siguientes símbolos “/*” y “cerramos con */”.
Veamos un ejemplo de cada uno en un mismo bloque anónimo...
25

Funciones de SQL en PL/SQL


• Disponible en sentencias procedurales :
• Funciones numéricas de fila
• Funciones de carácter de fila
• Funciones de conversión de tipo de dato
• Funciones de Fecha de fila

• No Disponible en sentencias procedurales :


• DECODE
• Funciones de Grupo

Ahora veamos 2 ejemplos…Uno de ellos calcula el largo de una cadena, el otro convierte a
minúsculas una cadena…
26

Funciones de SQL en PL/SQL


27

Conversión de Tipo de datos


Convertir información de tipos de datos distintos. Oracle tiene 2 posibilidades de
hacerlo, ellas son :
1. Conversiones Implícitas
2. Conversiones Explícitas
Alguna de las funciones de conversión pueden ser las siguientes :
• TO_CHAR
• TO_DATE
• TO_NUMBER
28

Operadores en PL/SQL
Los siguientes operadores son iguales tanto en SQL como en PLSQL :
1. Lógicos
2. Aritméticos
3. Concatenación
4. Paréntesis que controla el orden de operación
Operadores…
• +,-
• *, /
• ||
• =, <, >, <=, >=, <>, !=, IS NULL,LIKE, BETWEEN,IN
• NOT
• AND
• OR
29

Operadores en PL/SQL
Veamos ejemplos prácticos de distintos operadores…
30

Indentación del código


Es sumamente importante “indentar” o “tabular” el código de programación para
que sea mas legible poder leerlo e interpretarlo. Esto permite también una mayor
reutilización del mismo. Veamos el ejemplo :
31

Resumen de la Unidad
En esta unidad aprendimos los siguientes temas :
• Identificar los productos de Oracle
• Identificar las tablas del modelo de datos que se utilizarán en este curso
• Integrar sentencias de SQL en un bloque anónimo de PL/SQL
• Identificar los beneficios de PL/SQL
• Diferenciación entre bloque anónimo, procedimiento y función
• Mensajes de salida en PL/SQL
• Identificar identificadores válidos y no válidos
• Declarar variables en la sección “DECLARE”
• Inicializar variables y utilizarlas en la sección de ejecución, “BEGIN”
• Utilización del atributo %TYPE
32

Resumen de la Unidad
• Sustitución de Variables
• Literales
• Como comentar el código
• Funciones de SQL en PL/SQL
• Conversión de Tipo de datos
• Operadores
• Indentación del código
33

A trabajar entonces…

Completa el cuestionario,
no lo olvides !
34

Muchas Gracias!

Potrebbero piacerti anche