salida procedimientos procedimiento parametros funciones entrada ejercicios ejemplos ejecutar developer cursores con almacenados almacenado sql oracle search full-text-search

parametros - SQL para buscar objetos, incluidos los procedimientos almacenados, en Oracle



procedimiento almacenado oracle select (5)

ALL_SOURCE describe el origen de texto de los objetos almacenados accesibles para el usuario actual.

Aquí hay una solución

select * from ALL_SOURCE where text like ''%some string%'';

Necesito escribir algunos sql que me permitan consultar todos los objetos en nuestra base de datos Oracle. Desafortunadamente, las herramientas que podemos usar no tienen esto incorporado. Básicamente, necesito buscar en todas las tablas, procedimientos, disparadores, vistas, todo.

Sé cómo buscar nombres de objetos. Pero necesito buscar el contenido del objeto. es decir, SELECT * FROM DBA_OBJECTS WHERE object_name = ''% search string%'';

Gracias, Glenn


Llegué a esta pregunta mientras trataba de encontrar todos los procedimientos que usan cierta tabla

Oracle SQL Developer ofrece esta capacidad, como se señala en este artículo: https://www.thatjeffsmith.com/archive/2012/09/search-and-browse-database-objects-with-oracle-sql-developer/

En el menú Ver, elija Buscar objeto DB. Elija una conexión de base de datos. Ingrese el nombre de la tabla. En Object Types, conserve solo funciones, procedimientos y paquetes. En la sección Código, marque Todas las líneas de origen.


No estoy seguro de haber entendido la pregunta, pero si desea buscar objetos en la base de datos para una cadena de búsqueda en particular, intente:

SELECT owner, name, type, line, text FROM dba_source WHERE instr(UPPER(text), UPPER(:srch_str)) > 0;

Desde allí, si necesita más información, puede buscar el número de objeto / línea.


No estoy seguro si te entiendo, pero para consultar el código fuente de tus disparadores, procedimientos, paquetes y funciones puedes probar con la tabla "user_source".

select * from user_source


Usaría DBA_SOURCE (si tiene acceso) porque si el objeto que necesita no pertenece al esquema en el que está conectado, no lo verá.

Si necesita conocer las funciones y los Procs dentro de los paquetes, intente algo como esto:

select * from all_source where type = ''PACKAGE'' and (upper(text) like ''%FUNCTION%'' or upper(text) like ''%PROCEDURE%'') and owner != ''SYS'';

La última línea evita que se devuelva todo el material del sistema (DBMS_ et al). Esto funcionará en user_source si solo quieres tus propios esquemas.