Oracle - Ayuda con esto

 
Vista:

Ayuda con esto

Publicado por Luis (1 intervención) el 26/06/2006 05:34:36
Hola que tal amigos del Foro saben me han dejado un ejercicio y que me trae la cabeza pensando es sobre oracle y el problema es el sgte

Crear un procedimiento para ingresar una fila a cualquier TABLA.
Debe tener en cuenta las siguientes consideraciones:
. Se asume la tabla es independiente (no esta relacionada con ninguna otra tabla)
. Al procedimiento debe recibir solo como argumento el nombre de la tabla.
. Los datos a ingresar deben ser de columna en columna, desde la 1era columna hasta la ultima, tantas columnas tenga la tabla.

SUGERENCIA: Pasos que debe seguir el procedimiento:
. Verificar que la tabla existe
. Recoger desde el diccionario la información de las columnas y sus tipos de datos para la tabla a la cual se ingresara 1 fila.
. Hacer el insert de los datos.

Lo que entiendo es que primero debo verificar que la tabla exista bueno aqui esta el procedmiento que me dice si la tabla existe o no pero luego de eso tengo que validar y recorrer los campos ahi esta mi duda y luego la insercion quiero saber si puedes ayudarme o orientame a armar la estructura para el procedimiento almacenado gracias de ante mano ante cualquier ayuda


Verficar si la tabla existe o no
----------------------------------------
create or replace procedure validTable(nombreTabla in varchar2(32), nombreEsquema varchar2(30))

return varchar

is

existe varchar2(1);

Begin

Select 'S' Into existe

From all_tables

Where table_name = upper(nombreTabla)

And owner = upper(nombreEsquema);


return existe;

Exception

When no_data_found then

existe := 'N';

return existe;

When too_many_rows then

existe := 'S';

return existe;

End;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con esto

Publicado por miguel (66 intervenciones) el 14/07/2006 14:00:22
Esta complicada la cosa.

Primero que todo debes usar ajuro los DBMS o sentencias dinamicas de bases de datos, estas te permitiran modificar el insert para hacer lo que sea, lo malo es que es dificil camputurar las excepciones con los dmbs, yo no he podido.

Lo otro es que te recomiento que consultes si estiste la table en la tabla USER_OBJECTS es mas facil porque no te importa el owner de la misma.

Cuando hagas esto, si el nombre de la tabla es XXX

haces select decode(object_name,'0',object_name) from user_objects where objects type = 'TABLE';

esto defuelve '0' si la tabla no esxiste para el usuario actual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar