- Articulos
- Manuales
- Bases de datos de Software Libre
- Data Warehousing y metodología Hefesto
- Descubriendo el BI
- Grafico OpenFlash dinámico
- Guia para la adquisición de un sistema de DWH
- Metodología CRISP-DM para minería de datos
- Mineria de datos para EPH
- Recopilación de artículos sobre Oracle
- DW y DM aplicados al estudio del rendimiento academico
- Blogs
- Foro
- Videos
- Eventos
- Tablón de Empresas
- Microsites
- Directorio
Obtener la Lista de Objetos de un Package en Oracle
2 February, 2010 - 03:48
Versión para impresión
Hola amigos
Abro, este post, por que no encuentro una forma de desarrollar un query, lo que he encontrado es un query para obtener los package
SELECT OBJECT_NAME,OBJECT_TYPE FROM dba_objects where owner='webmaster' and object_type='PACKAGE'"
pero me gustaria hacer un query que al pasar como parametro el nombre de un package, me de la lista de los objetos relacionados, tales como procedimientos, funciones, etc
saludos cordiales
9 February, 2010 - 13:54
#2
Eloy, gracias por compartir la solución que has encontrado.
Otra cosa que se puede hacer es utilizar las facilidades que ofrecen las herramientas visuales de desarrollo/administración. Con Oracle SQL Developer, por ejemplo, si seleccionas un procedure, que puede formar parte de un package, en el explorador de objetos tienes una pestaña de Dependencias que te muestra los objetos de los que depende el procedure para poder ejecutarse. También tienes una pestaña de Referencias que te muestra todos los objetos que utilizan o que llaman a ese Procedimiento.

Si no recuerdo mal, otras herramientas como PL/SQL Developer o TOAD también tienen utilizades parecidas.
10 February, 2010 - 17:38
#3
Hola Carlos
gracias por contestar, es una buena idea.
pero mira algo raro, hace poco usaba ese query para ver los package, en un servidor X de una empresa, ahora resulta que no funciona, pues el query lo llevo al sql developer y desde alli lo ejecuto y me dice que la tabla o vista no existe, debe ser por permisos o algo parecido, por que la misma base de datos la tengo instalada en forma local en mi laptop y si me funciona perfectamente todo
aca el query
SELECT OBJECT_NAME,OBJECT_TYPE FROM dba_objects where owner='WEBMASTER' and object_type='PACKAGE'
error: 942 tabla o vista no existe
11 February, 2010 - 00:45
#4
Efectivamente ha de ser un tema de privilegios. Para poder consultar las tablas o vistas del diccionario de datos de datos (como dba_objects) el usuario ha de tener permisos de DBA.
El usuario que más se suele utilizar para estas cosas es SYSTEM, aunque puedes hacerlo con cualquier otro, siempre que tenga o le otorges antes los privilegios necesarios.
30 April, 2010 - 10:15
#5
Hola,
en primer lugar gracias por este post, es muy útil y se agradece encontrar tantas utilidades en un mismo lugar.
En segundo lugar tengo una pregunta que espero que me podáis contestar:
-Estoy buscando una palabra en todos los paquetes de mi base de datos, en un principio estoy usando este script:
select *
from all_source
where owner = 'propietario' and
type in ('package', 'package body')
text like 'texto a buscar'
pero no me aparece nada, me imagino que en text no es el texto del script y por eso no me sale.
¿alguna ayuda o sugerencia de como buscar una palabra en todos los paquetes de la BBDD?
pd.: Si no fuera mucho pedir, ¿podríais mandarme la contestación a mi email personal además de en este post para que lo pueda usar cualquier otra persona que le pase lo mismo? es drakoniano@gmail.com
Gracias !!
3 May, 2010 - 20:54
#6
La consulta es correcta. Lo único que veo que pones todo en minúsculas. Al comparar Oracle distingue entre mayúsculas y minúsculas y los tipos, por ejemplo, los guarda en mayúsculas.
Tenlo en cuenta al especificar el owner, y los tipos han de ser 'PACKAGE' y 'PACKAGE BODY'. Ten en cuenta también que en cada fila se almacena una linea del procedure, por lo que te has de asegurar de que lo que busques en el campo TEXT esté en una sola linea y no distribuido en más de una.
Si quieres asegurarte de que no te falla la búsqueda por el tema de las mayúsculas te recomiendo convertir el texto a mayúsculas con UPPER:
Select *
from all_source
where owner = 'PROPIETARIO' and
type in ('PACKAGE', 'PACKAGE BODY') and
upper(text) like '%Texto a buscar%'Te envío la respuesta por email, pero para otra vez es más sencillo que valides tu usuario y, si lo permites en tu perfil de usuario, cada vez que alguien responda a una publicación tuya el sistema te enviará un aviso automáticamente.
3 May, 2010 - 21:43
#7
Hola,
Gracias por contestar, efectivamente fue por lo de las minúsculas. Más concretamente fue por poner la primera letra del owner que estaba en minúscula y es en mayúscula. Fallo de novato xD
Por cierto ya me logueé y echaré un vistazo de vez en cuando a ver si puedo ayudar a alguien ^ ^
3 May, 2010 - 23:16
#8
Gracias a ti por participar.
Veo que ya has validado tu usuario.
Bienvenido a Dataprix, y esperamos seguir viéndote por aquí :)
27 August, 2010 - 16:54
#9
Para que veas el contenido de un paquete , es decir el listado de objetos que lo componen, lo puedes hacer accediendo a la vista all_procedures, donde la columna Object_name te lista el nombre del paquete y la columna procedure_name te lista el nombre no solo de los procedimientos sino tambien el nombre de las funciones que componen el paquete


Bueno amigos
yo mismo me respondere, jejejejeje, investigando hize esto
select * from dba_source where owner='EXTRANET' and line=3 and type='PACKAGE BODY'
si halguien tiene otra forma, le agradeceria compartirla
saludos cordiales
Eloy