Localizar errores

Este es un script que tengo para ver el lugar exacto de una línea de código en un procedimiento, función o paquete almacenado. Especialmente útil para cuando estás compilando y te da un fallo en la linea x. El script te muestra las cinco líneas anteriores, la linea solicitada y las cinco posteriores. Como veréis es una chorrada, pero hace su función..

SET VERIFY OFF
ACCEPT nombre_objeto prompt "Nombre del objeto: "
ACCEPT tipo_objeto   prompt "Tipo objeto (1 pack b., 2 pack s., 3 pbd, 4 fbd): "
ACCEPT num_linea     prompt "Número de línea: "

SELECT DECODE( LINE, &&num_linea, '*', NULL) "LOC.", TEXT "Código fuente"
FROM   USER_SOURCE
WHERE  NAME = UPPER( '&nombre_objeto' )
  AND  TYPE = DECODE( NVL( '&tipo_objeto', '1'),
                      '1', 'PACKAGE BODY',
                      '2', 'PACKAGE',
                      '3', 'PROCEDURE',
                      '4', 'FUNCTION' )
  AND  LINE BETWEEN (&&num_linea - 5) AND (&&num_linea + 5)
/
Anuncios