Está en la página 1de 11

INSTITUTO TECNOLÓGICO SUPERIOR DE MOTUL

PL-SQL

TRABAJO:

INVESTACIÓN USO DE EXCEPCIONES PL-SQL.

DOCENTE:

L.C.C. JESÚS EPIFANIO BOTE MAY

ALUMNOS:

CHAN CIAU GYSSEL DANALLY.

KOH EUAN REBECA SARAI.

TEC CAN MIGUEL ANGEL.

GRADO Y GRUPO:

8 “A”
Índice
Introducción................................................................................................................1

Objetivo General.........................................................................................................2

Objetivos específicos...................................................................................................2

Metodologías...............................................................................................................2

Excepciones.................................................................................................................3

Manejo de errores en PL/SQL.....................................................................................3

Tipos de excepciones..................................................................................................5

Excepciones predefinidas de Oracle...........................................................................6

Conclusión.................................................................................................................10

Bibliografía...............................................................................................................11
Introducción.

  En PL/SQL una advertencia o condición de error es llamada una excepción. Las

excepciones se controlan dentro de su propio bloque. Cuando ocurre un error se ejecuta el

bloque EXCEPTION, transfiriéndose el control a las sentencias del bloque. Una vez finalizada la

ejecución del bloque de EXCEPTION no se continúa ejecutando el bloque anterior.

Si existe un bloque de excepción apropiado para el tipo de excepción se ejecuta

dicho bloque. Si no existe un bloque de control de excepciones adecuado al tipo de

excepción se ejecutará el bloque de excepción WHEN OTHERS THEN (¡si

existe!). WHEN OTHERS debe ser el último manejador de excepciones.

    Las excepciones pueden ser definidas en forma interna o explícitamente por el

usuario. Ejemplos de excepciones definidas en forma interna son la división por cero y la

falta de memoria en tiempo de ejecución. Estas mismas condiciones excepcionales tienen

sus propios tipos y pueden ser referenciadas por

ellos: ZERO_DIVIDE y STORAGE_ERROR.

    Las excepciones definidas por el usuario deben ser alcanzadas explícitamente

utilizando la sentencia RAISE.

    Con las excepciones se pueden manejar los errores cómodamente sin necesidad

de mantener múltiples chequeos por cada sentencia escrita. También provee claridad en el

código ya que permite mantener las rutinas correspondientes al tratamiento de los

errores de forma separada de la lógica del negocio.

1
Objetivo General.

Identificar los usos de excepciones en PL-SQL

Objetivos específicos.

Investigar en fuentes confiables los usos de excepciones que utiliza PL-SQL.

Metodologías.

Analizar la información recaudada.

Identificar los puntos más relevantes.

Comprender los usos de excepciones en PL-SQL.

2
Excepciones

En PL/SQL existen un conjunto de excepciones predefinidas que informan de los

errores producidos en la ejecución de las sentencias SQL por parte del sistema de gestión

de bases de datos. Además de éstas, el programador puede definir excepciones de uso

especifico, cuyo control es enteramente gestionado por él. En este apartado solamente se

comenta la declaración de las excepciones específicas, dejando para posteriores secciones

la descripción de la utilización de las excepciones.

La declaración de las excepciones definidas por el usuario se define mediante la

siguiente sintaxis:

Declaración_excepción

: : = nombre_excepción EXCEPTION;

Las excepciones no son variables, sino que su utilización debe realizarse mediante

sentencias especificas de PL/SQL. Tampoco pueden ser utilizadas como argumentos en

funciones y procedimientos.

Manejo de errores en PL/SQL

Es de uso común en los lenguajes de programación que se manejen los Errores y se

suspenda la ejecución de los programas cuando estos se presentan. Un error muy común y

que suspende de inmediato la mencionada ejecución lo representa la división entre cero. En

casi todos los casos, si se está ejecutando un programa y se intenta dividir un valor entre

cero, inmediatamente ocurrirá una interrupción y se le entregará el control al sistema

operativo. Ahora bien, en PL/SQL se tiene un mecanismo denominado MANEJADOR DE

3
EXCEPCIONES que permite continuar la ejecución de un programa, aunque se haya

presentado un error.

Si se utiliza correctamente el MANEJADOR DE EXCEPCIONES, cuando ocurra

un error el control le será transferido a la rutina manejadora de errores para que se ejecute

una secuencia de instrucciones que permitirán manejar adecuadamente el error sucedido,

una vez terminado el paso de manejo de errores en la mayoría de los casos finaliza.

Existen 2 tipos de excepciones:

1. Las predefinidas (Establecidas por el manejador de Base de Datos).

2. La definida por el programador.

SINTAXIS:

DECLARE BEGIN

Instrucciones

EXCEPTION WHEN Nombre_De_La_Excepción THEN

Instrucciones

END;

4
Tipos de excepciones

Excepción Descripción Instrucciones de Manejo


Errores Predefinidos de Errores que ocurren con No hay necesidad de
Oracle. frecuencia en PL/SQL. declarar estas excepciones.
Son predefinidas por Oracle
y se levantan de forma
implícita.
Errores No-Predefinidos de Cualquier otro error Es necesario declararlos
Oracle. estándar del servidor de dentro de la parte
Oracle. declarativa; el servidor
Oracle levanta el error de
forma implícita, y luego
puedes capturarlo en el
controlador de excepciones.
Errores definidos por el X condición que el Deben ser declarados y
usuario. programador entiende como levantados de forma
anormal. explícita.

Excepciones predefinidas de Oracle.

Excepción Número de error en Descripción


Oracle
ACCESS_INTO_NULL ORA-06530 Intento de asignar valores
a los atributos de un
objeto no inicializado.
CASE_NOT_FOUND ORA-06592 No se selecciona ninguna
de las opciones en las
cláusulas WHEN de una
sentencia CASE, y no
hay una cláusula ELSE.
COLLECTION_IS_NULL ORA-06531 Intentado de aplicar un
método diferente de

5
EXISTS a una colección
(Nested Table,
VARRAY) no
inicializada.
CURSOR_ALREADY_OPEN ORA-06511 Intento de abrir un
Cursor ya abierto.
DUP_VAL_ON_INDEX ORA-00001 Intento de insertar un
valor duplicado.
INVALID_CURSOR ORA-01001 Se produjo una operación
inválida con un Cursor.
INVALID_NUMBER ORA-01722 Conversión de carácter a
número fallida.
LOGIN_DENIED ORA-01017 Intento de iniciar sesión
en el servidor de Oracle
con un nombre de
usuario o contraseña no
válidos.
NO_DATA_FOUND ORA-01403 Sentencia SELECT no
retorna datos.
NOT_LOGGED_ON ORA-01012 El programa PL/SQL
emite una llamada de
Base de Datos sin estar
conectado al servidor de
Oracle.
PROGRAM_ERROR ORA-06501 PL/SQL tiene un
problema interno.
ROWTYPE_MISMATCH ORA-06504 La variable host cursor y
la variable PL/SQL
envueltas en una
asignación tienen tipos
incompatibles.
STORAGE_ERROR ORA-06500 PL/SQL sin memoria o la
memoria está dañada.
SUBSCRIPT_BEYOND_COUNT ORA-06533 Referencia a un elemento
de un Nested Table o
VARRAY mediante el
uso de un índice mayor
que el número de
elementos de la
colección.
SUBSCRIPT_OUTSIDE_LIMIT ORA-06532 Referencia a un elemento
de un Nested Table o
VARRAY mediante el
uso de un índice que está
fuera del rango legal
SYS_INVALID_ROWID ORA-01410 La conversión de una

6
cadena de caracteres a
ROWID universal falla
porque la cadena de
caracteres no representa
un ROWID válido.
TIMEOUT_ON_RESOURCE ORA-00051 Se Agotó el tiempo de
espera (Time-Out)
mientras el Servidor
Oracle esperaba por un
recurso.
TOO_MANY_ROWS ORA-01422 Sentencia SELECT
retorna más de una fila.
VALUE_ERROR ORA-06502 Se produjo un error:
aritmético, de
conversión, de
truncamiento o de
restricción de tamaño.
ZERO_DIVIDE ORA-01476 Se ha intentado dividir
por cero.

7
Conclusión

Las excepciones, presentes en la mayoría de los lenguajes de programación, sirven

para tratar errores en tiempo de ejecución. En el sistema que nos ocupa, Oracle, sirven

también para definir qué se debe hacer frente a errores en sentencias definidas por el

usuario. Cuando se produce un error PL/SQL levanta una excepción y pasa el control a la

sección excepción correspondiente al bloque PL/SQL.

En conclusión, una excepción es una situación especial dentro de la ejecución de un

programa, que puede ser capturada para asignar un nuevo comportamiento. Una excepción

puede ser un error de ejecución (una división entre 0) o cualquier otro tipo de suceso.

Las excepciones deben ser declaradas dentro de la sección DECLARE, como si de

una variable se tratase, una vez que la excepción está definida, ésta debe ser lanzada, ya sea

automáticamente por Oracle (cuando se produce un error controlado por Oracle), o lanzada

manualmente por el usuario a través de la instrucción RAISE. Dentro del bloque de

excepciones conviene recordar la existencia de la excepción OTHERS, que simboliza

cualquier condición de excepción que no ha sido declarada. Se utiliza comúnmente para

controlar cualquier tipo de error que no ha sido previsto.

8
Bibliografía

Cordero, L. P. (2017). BASE DE DATOS. USA: Windmils International Editions, Inc.

Mercedes, A. M. (2001). SQL Y DESARROLLO DE APLICACIONES EN ORACLE .

COL.LECCIÓ.

ORACLE, M. P. (s.f.). Manejo de excepciones. Obtenido de Manejo de excepciones:

https://magicplsql.blogspot.com/2016/10/manejo-de-excepciones.html

También podría gustarte