Índice

Las excepciones más utilizadas Código PL/SQL:excepciones más utilizadas

Salvo la excepción « NOT_DATA_FOUND » que hemos visto en los ejemplos anteriores, existen multitud de excepciones. No vamos a citarlas todas en este libro, pero vamos a ver algunas que puede ser útiles.

CURSOR_ALREADY_OPEN: el cursor ya está abierto. Hay que cerrarlo antes de volver a abrirlo (sqlcode --> 06511) CURSOR_ALREADY_OPEN

INVALID_NUMBER: la variable utilizada no contiene un número válido (sqlcode --> 01722) INVALID_NUMBER

NOT_LOGGED_ON: el usuario no está conectado a la base de datos (sqlcode --> 01012) NOT_LOGGED_ON

TOO_MANY_ROWS: la selección devuelve varias filas, mientras el select solo prevé una ocurrencia; se debe hacer un cursor (sqlcode --> 01422) TOO_MANY_ROWS

ZERO_DIVIDE: división por cero (sqlcode --> 01476) ZERO_DIVIDE

Para tratar cualquier tipo de error, es preferible añadir siempre una comprobación de este tipo para visualizar el error.

WHEN OTHERS THEN  
   DBMS_OUTPUT.PUT_LINE( ’El número de error es: ’|| 
TO_CHAR( SQLCODE )) ;  
     DBMS_OUTPUT.PUT_LINE( ’correspondiente a: ’|| 
TO_CHAR( SQLERRM )) ;