Descripcion de los objetos en PL/SQL

dernesto
29 de Noviembre del 2005
Necesito saber como puedo hacer un procedimiento que dado el nombre del objeto, me devuelva la descripcion o sea en el caso de una tabla los nombres de los campos, el tipo de dato que son, si pueden ser nulos o no.
En el caso de los procedimientos y funciones que me devuelva los parametros que reciben con toda la informacion de ellos, tipo de datos y bueno ya saben.

He probado varias cosas por ejemplo en el PL/SQl pueden sacar una ventana de comandos y ejecutar

describe o desc [nombre del objeto]

esto les devolvera lo que estoy buscando lo que sucede es que lo quiero es meter esta consulta en un procedimiento almacenado o una funcion que pueda ser llamada desde cualquier cliente.

Espero que me ayuden con esto.

Gracias a todos.....

Jor-El
29 de Noviembre del 2005
Es facil :

Para tablas :

ALL_TAB_COLUMNS ó DBA_TAB_COLUMNS

Para paquetes de Base De Datos

ALL_ARGUMENTS

Ahí tienes la informacion que estás pidiendo, solo te resta montar dos cursores ( O tres ), los metes en el procedure y a tirar millas

dernesto
29 de Noviembre del 2005
Gracias ante todo, esta solucion esta muy buena, pero mi idea es la siguiente.

Que mi procedimiento ejecute de alguna forma lo que devuelve el comando describe o desc en la consola del sql>
del pl/sql.

mira lo que hecho hasta ahora:

PROCEDURE SPdescripcion(prmNomObj in varchar2, io_AllRec OUT ref_cursor)
IS
AllRec PKG_UTILES.ref_cursor;
cad varchar2(200) := '';
BEGIN
--cad := 'describe ' || prmNomObj;
cad := 'DESC ' || prmNomObj;
OPEN AllRec FOR cad;
io_AllRec := AllRec;
end SPdescripcion;

Esto me esta dando error, si tienes alguna forma de hacerlo te lo agradeceria.
Si logro hacerlo respondere yo mismo.
Gracias a todos.....

Jor-El
29 de Noviembre del 2005
Te stas complicando la vida, dime que error te da a ver si te puedo hechar una mano

dernesto
29 de Noviembre del 2005
Ya se que deberia hacer las cosas de otra forma pero me parece que esta es la via mas optima y mas general en que podamos recuperar los datos de un objeto sea cual sea de nuestro servidor de BD.

El error es:

invalid SQL statement
esto cuando pruebo la solucion.
Gracias.....

Jor-El
29 de Noviembre del 2005
¿ Pero te da error al ejecutarlo ó al intentar compilarlo ?