miércoles, 29 de abril de 2009

Diccionario de Oracle (I) - USER_SOURCE

Podemos ver el diccionario de Oracle con estas consultas

SELECT * FROM SYS.DICTIONARY SELECT * FROM DICT

Con una SELECT en la vista del diccionario de Oracle
podemos ver los objetos de Oracle que podemos consultar.

Unos ejemplos de los que más he utilizado:

Por ejemplo para buscar el código de las funciones o procedimientos almacenados
SELECT * FROM DICT WHERE TABLE_NAME LIKE '%SOURCE%'

USER_SOURCE: Source of stored objects accessible to the USER

SELECT * FROM USER_SOURCE

Las columnas que podemos ver son:
NAME: Nombre del objeto
TYPE: Tipo del objeto (FUNCTION,PROCEDURE,PACKAGE,...)
LINE: Numero de línea dentro del código
TEXT: Código

Ejemplo práctico.
  • Creamos una función:
CREATE OR REPLACE FUNCTION FNT_AHORA RETURN DATE IS FECHA DATE; BEGIN SELECT SYSDATE INTO FECHA FROM DUAL; RETURN FECHA; END;
  • Buscamos en la tabla USER_SOURCE
SELECT * FROM USER_SOURCE WHERE NAME='FNT_AHORA'


En esta tabla podemos buscar cualquier línea de código.

Es muy útil cuando tenemos decenas o centenares de funciones y procedimientos, en distintos paquetes, etc..

Nos permite localizar de forma rápida todas las líneas de código dónde aparece un texto en concreto (para localizar dónde utilizamos llamadas a cierta función, o dónde se nombra una tabla o una columna en concreto,...)

No hay comentarios:

Publicar un comentario