SQL Dinámico
Tengo una tabla, y tengo que hacer un procemdimiento que devuelva una columna u otra dependiendo de un parámetro, que tiene que tener el nombre de la columna a devolver (o sea el campo en esa columna), pero el problema es que no me deja, siempre me devuelve el valor de la variable (el nombre de la columna) y necesito que lo haga bien y no sé como.
ESPERO VUESTRA AYUDA URGENTE, GRACIAS.
ESPERO VUESTRA AYUDA URGENTE, GRACIAS.
Se me ocurre que le pases un parámetro al procedimiento y en la select del procedimiento saques la columna que quieres con un decode :
decode(:parametro,\'columna1\',columna1 ,
\'columna2\',columna2)
decode(:parametro,\'columna1\',columna1 ,
\'columna2\',columna2)
tambien puede hacer lo siguiente:
fr_ruta(:ruta1); -- de este modo le pasas el parametro al procedimiento fr_ruta;
y luego en el procedimiento declaras la variable como in out asi:
PROCEDURE fr_ruta(ruta IN OUT VARCHAR2) IS
for i in(SELECT ruta
FROM gn_ruta
where cod_ruta = 1)loop;
ruta := ruta;
end loop;
end;
fr_ruta(:ruta1); -- de este modo le pasas el parametro al procedimiento fr_ruta;
y luego en el procedimiento declaras la variable como in out asi:
PROCEDURE fr_ruta(ruta IN OUT VARCHAR2) IS
for i in(SELECT ruta
FROM gn_ruta
where cod_ruta = 1)loop;
ruta := ruta;
end loop;
end;
