Descripcion de los objetos en PL/SQL
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.....
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.....
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
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
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.....
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.....
Te stas complicando la vida, dime que error te da a ver si te puedo hechar una mano
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.....
El error es:
invalid SQL statement
esto cuando pruebo la solucion.
Gracias.....
