You are on page 1of 37

SEMINARIO PL - SQL

Gustavo Castao Soto


Docente medio tiempo Email: gcastano1205@gmail.com

sbado, 24 de agosto de 2013

Agenda
Bloques PL / SQL Tipos de datos en PL/SQL Operadores en PL/SQL Estructuras de control Control de flujo IF Control de flujo CASE Control de flujo GOTO
Espacio para reproducir el ttulo de la presentacin que va en la portada 2

Bloques PL/SQL
Un programa de PL/SQL est compuesto por bloques. Un programa est compuesto como mnimo de un bloque. Los bloques de PL/SQL pueden ser de los siguientes tipos: Bloques annimos Subprogramas

Bloques PL/SQL
Los bloques PL/SQL presentan una estructura especfica compuesta de tres partes bien diferenciadas: 1. La seccin declarativa en donde se declaran todas las constantes y variables que se van a utilizar en la ejecucin del bloque. Opcional 2. La seccin de ejecucin que incluye las instrucciones a ejecutar en el bloque PL/SQL (BEGIN END). Obligatoria 3. La seccin de excepciones en donde se definen los manejadores de errores que soportar el bloque PL/SQL. Opcional

Bloques PL/SQL
1. La seccin de Excepciones En PL/SQL una advertencia o condicin de error es llamada una excepcin. Las excepciones se controlan dentro de su propio bloque. La estructura de bloque de una excepcin se muestra a continuacin.

Bloques PL/SQL
1. La seccin de Excepciones Cuando ocurre un error, se ejecuta la porcin del programa marcada por el bloque EXCEPTION, transfirindose el control a ese bloque de sentencias.

Bloques PL/SQL
1. Excepciones definidas por el usuario PL/SQL permite al usuario definir sus propias excepciones, las que debern ser declaradas y lanzadas explcitamente utilizando la sentencia RAISE. Las excepciones deben ser declaradas en el segmento DECLARE de un bloque, subprograma o paquete. Se declara una excepcin como cualquier otra variable, asignndole el tipo EXCEPTION. Las mismas reglas de alcance aplican tanto sobre variables como sobre las excepciones.

Bloques PL/SQL
1. Excepciones definidas por el usuario

Bloques PL/SQL
1. Sentencia RAISE La sentencia RAISE permite lanzar una excepcin en forma explcita. Es posible utilizar esta sentencia en cualquier lugar que se encuentre dentro del alcance de la excepcin.

Bloques PL/SQL
1. Uso del SQLCODE y SQLERRM Al manejar una excepcin es posible usar las funciones predefinidas SQLCode y SQLERRM para aclarar al usuario la situacin de error acontecida. SQLcode devuelve el nmero del error de Oracle y un 0 (cero) en caso de exito al ejecutarse una sentencia SQL. Por otra parte, SQLERRM devuelve el correspondiente mensaje de error.

Bloques PL/SQL
1. Uso del SQLCODE y SQLERRM Estas funciones son muy tiles cuando se utilizan en el bloque de excepciones, para aclarar el significado de la excepcin OTHERS. Estas funciones no pueden ser utilizadas directamente en una sentencia SQL, pero s se puede asignar su valor a alguna variable de programa y luego usar esta ltima en alguna sentencia.

Bloques PL/SQL
1. Uso del SQLCODE y SQLERRM

Bloques PL/SQL
1. Uso del SQLCODE y SQLERRM Tambin es posible entregarle a la funcin SQLERRM un nmero negativo que represente un error de Oracle y sta devolver el mensaje asociado.

Bloques PL/SQL
1. La seccin declarativa En esta parte se declaran las variables que va a necesitar nuestro programa. Una variable se declara asignndole un nombre o "identificador" seguido del tipo de valor que puede contener. Tambin se declaran cursores, de gran utilidad para la consulta de datos, y excepciones definidas por el usuario. Tambin podemos especificar si se trata de una constante, si puede contener valor nulo y asignar un valor inicial.

Bloques PL/SQL
1. La seccin declarativa

Bloques PL/SQL
1. Asignacin e Inicializacin de Variable

Tipos de datos PL/SQL


Cada constante y variable tienen un tipo de dato en el cual se especifica el formato de almacenamiento, restricciones y rango de valores validos. Casi todos los tipos de datos manejados por PL/SQL son similares a los soportados por SQL.

Tipos de datos PL/SQL


Para obtener la definicin de datos de una tabla podemos ejecutar:

En la definicin de las columnas de las tablas podemos usar los siguientes tipos de datos:

Tipos de datos PL/SQL


NUMBER (p,s):
Nmero de p dgitos de los cuales s son decimales. No es obligatorio especificar el tamao. El tamao de p va de 1 a 38 y el s desde -84 a 127. El tamao en PL/SQL 1E-130 .. 10E125.
nmeros de coma fija: DEC,DECIMAL,NUMERIC Enteros : INTEGER (sinnimo de NUMBER(38)),INT,SMALLINT coma flotante: DOUBLE PRECISION FLOAT REAL. Ver tambin: PLS_INTEGER, BINARY_INTEGER

Sinnimos

Tipos de datos PL/SQL


NUMBER (p,s): El valor 7.546.123,89 se almacenara como:

Tipos de datos PL/SQL


CHAR (n):
Cadena de caracteres de longitud fija, tiene un tamao n bytes. Si no se especifica n ORACLE le da un tamao de 255 bytes. El tamao mximo en BD es 2000 bytes y el mnimo 1 byte. El tamao mximo en PL/SQL es 32767 bytes y el mnimo 1 byte.

Sinnimos

CHARACTER, NCHAR

Tipos de datos PL/SQL


VARCHAR2 (n):
Cadena de caracteres de longitud variable, tiene un tamao mximo de n bytes. Es obligatorio especificar el tamao. El tamao mximo en BD es 4000 bytes y el mnimo 1 byte. El tamao mximo en PL/SQL es 32767 bytes y el minimo 1 byte. Usando VARCHAR2 en lugar de CHAR ahorramos espacio de almacenamiento.
Sinnimos VARCHAR

Tipos de datos PL/SQL


DATE:
Fecha Valida. Desde el 1 de enero del 4712 AC hasta el 31 de diciembre del 9999 DC..

TIMESTAMP (f)
El timestamp es un fecha que contiene un granularidad superior al tipo DATE, eso significa que contiene fracciones de segundo. Con f definimos el numero de dgitos que queremos en la fraccin de segundo. As, f puedes valer desde 0 hasta 9, el valor por defecto es 6.

Tipos de datos PL/SQL


Atributos de tipo.
Un atributo de tipo PL/SQL es un modificador que puede ser usado para obtener informacin de un objeto de la base de datos.

El atributo %TYPE permite conocer el tipo de una variable, constante o campo de la base de datos. El atributo %ROWTYPE permite obtener los tipos de todos los campos de una tabla de la base de datos, de una vista o de un cursor.

Operadores en PL/SQL
La siguiente tabla ilustra los operadores de PL/SQL.

Estructuras de control
Estructura de control de flujo IF Estructura de control de flujo CASE Estructura repetitiva LOOP Estructura repetitiva WHILE Estructura repetitiva FOR

Control de Flujo IF THEN - ELSIF


Diagrama:

Un aspecto a tener en cuenta es que la instruccin


condicional anidada es ELSIF y no "ELSEIF".

Control de Flujo IF THEN - ELSIF


Diagrama:

Un aspecto a tener en cuenta es que la instruccin


condicional anidada es ELSIF y no "ELSEIF".

Control de Flujo IF THEN


Se evala la condicin y si resulta verdadera, se ejecutan uno o ms lneas de cdigo de programa. En el caso de que la condicin resulte falsa o nula, NO se realiza NINGUNA accin.

Control de Flujo IF THEN


La sintaxis bsica es:

Ejemplo

Control de Flujo IF THEN - ELSE


La sentencia if-then-else (si-entonces-o-si-no) decide qu instrucciones ejecutar dependiendo si una condicin es verdadera o falsa. .

Control de Flujo IF THEN -ELSE


La sintaxis bsica es:

Ejemplo

Control de Flujo IF THEN -ELSE


Se pueden anidar varias instrucciones:

Control de Flujo - CASE


Sentencia condicional mltiple

Control de Flujo - GOTO


PL/SQL dispone de la sentencia GOTO. La sentencia GOTO desva el flujo de ejecucin a una determinada etiqueta. En PL/SQL las etiquetas se indican del siguiente modo: << etiqueta >>

Control de Flujo - GOTO


Ejemplo

Bibliografa
http://felinfo.blogspot.com/2009/07/imprimir-con-plsqldbmsoutputputline.html http://www.devjoker.com/gru/Tutorial-PLSQL/PLSQ/TutorialPLSQL.aspx http://ora.u440.com/ddl/datatypes.html http://www.devjoker.com/contenidos/catss/60/Tipos-de-datos-enPLSQL.aspx http://www.mundoracle.com/pl-sql.html?Pg=sql_plsql_11.htm

You might also like