Obtener la Lista de Objetos de un Package en Oracle

9 replies [Último envío]
does not have a status.
User offline. Last seen 29 semanas 1 día ago. Offline
Joined: 01/02/2010
puntos: 6
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

 

 

does not have a status.
User offline. Last seen 29 semanas 1 día ago. Offline
Joined: 01/02/2010
puntos: 6

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

Infográfico sobre el nuevo escenario de la información http://bit.ly/dflh8B
Imagen de carlos
User is online Conectado
Joined: 28/12/2005
puntos: 649

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.

Dependencias y Referencias a un Procedure con Oracle SQL Developer

 

Si no recuerdo mal, otras herramientas como PL/SQL Developer o TOAD también tienen utilizades parecidas.

does not have a status.
User offline. Last seen 29 semanas 1 día ago. Offline
Joined: 01/02/2010
puntos: 6

 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

 

Infográfico sobre el nuevo escenario de la información http://bit.ly/dflh8B
Imagen de carlos
User is online Conectado
Joined: 28/12/2005
puntos: 649

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.

FRANCISCO (no verificado)
does not have a status.

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 !!

Infográfico sobre el nuevo escenario de la información http://bit.ly/dflh8B
Imagen de carlos
User is online Conectado
Joined: 28/12/2005
puntos: 649

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.

does not have a status.
User offline. Last seen 1 día 18 horas ago. Offline
Joined: 03/05/2010
puntos: 5

 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 ^ ^

Creando en Dataprix el nuevo Directorio de empresas y blogs
Imagen de Dataprix
User offline. Last seen 1 hora 57 mins ago. Offline
Joined: 02/01/2007
puntos: -58

Gracias a ti por participar.
Veo que ya has validado tu usuario.

Bienvenido a Dataprix, y esperamos seguir viéndote por aquí :)

Anonim. (no verificado)
does not have a status.

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

Últimos estados

Investigando

   - negrito_cl hace 1 día -

Busco Consultor ARTUS para proyecto en Panamá, será contratado en Mx, al concluir regresará en México.Enviar CV bhernandez@intellego.com.mx

   - Intellego hace 3 días -

Intellego es líder en consultoría y servicios para la gestión de información.

   - Intellego hace 3 días -

Infográfico sobre el nuevo escenario de la información http://bit.ly/dflh8B

   - carlos hace 1 semana -

Anunciando el laboratorio de Dataprix: www.labs.dataprix.com

   - carlos hace 1 semana -