Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Como utilizar un rowtype dinámico

Estas en el tema de Como utilizar un rowtype dinámico en el foro de Oracle en Foros del Web. Hola, comunidad. Estoy desarrollando sobre Oracle y necesito realizar varias consultas a varias tablas, por lo cual sería conveniente hacerlo de forma dinámica. El problema ...
  #1 (permalink)  
Antiguo 18/06/2010, 08:26
Avatar de Kluster  
Fecha de Ingreso: agosto-2005
Ubicación: Cuba
Mensajes: 86
Antigüedad: 18 años, 8 meses
Puntos: 1
Como utilizar un rowtype dinámico

Hola, comunidad.

Estoy desarrollando sobre Oracle y necesito realizar varias consultas a varias tablas, por lo cual sería conveniente hacerlo de forma dinámica. El problema -archiconocido por demás, a pesar de lo cual no he podido encontrar una solución-, es que no sé cómo declarar ese %rowtype dinámico, dependiendo de un parámetro que recibe la función, y menos aún devolverlo para mostrar el resultado de la consulta en la aplicación.

Algo más o menos así:

function obtener(tabla varchar2, columna varchar2) return rowtype
is
curGen is ref cursor;
curObj curGen;
registro tabla%rowtype;
-- o tal vez algo como esto: registro curObj%rowtype;
sentencia varchar2(100);
begin
sentencia := 'select ' || columna || ' from ' || tabla;
open curObj for sentencia;
fetch curObj into registro;
close curObj;
return registro;
end obtener;

Gracias de antemano.
  #2 (permalink)  
Antiguo 29/06/2010, 09:46
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Como utilizar un rowtype dinámico

Hola kluster,

Algo que sabemos es que el rowtype cotiene una sola fila y todas las columnas de la tabla para esa fila. Ahora tu quieres devolver la fila de una tabla X segun la columna Y. Es decir siempre es una sola fila lo que se devolveria o hablamos de varias filas, si son varias filas ya rowtype no nos sirve. Usariamos y devolveriamos un cursor.

Saludos y espero tus comentarios.

Etiquetas: utilidades
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:27.