Tengo el siguiente problema:
Tengo que hacer una consulta de una BD remota, para lo cual utilizo un dblink. La consulta se realiza desde BD diferentes. En mi BD no está definido el dblink, por lo que llamo a la tabla únicamente por su nombre. Pero como la misma consulta se tiene que realizar desde la misma aplicación en diferentes bases de datos, unas veces se usará el dblink y otras no. Para ello la solución ha sido crear una tabla de parámetros, uno de los cuales es el que contiene el dblink. Para realizar mi consulta desde la base de datos tengo que guardarla en un VARCHAR2 y ejecutarla con EXECUTE IMMEDIATE, concatenándole el dblink al nombre de la tabla, como sigue:
'SELECT * FROM mi_tabla' || paquete.funcion_get_valor_parametro('dblink');
El resultado, es decir, se ejecutaría:
SELECT * FROM mi_tabla@dblink;
En mi BD, donde no está definido el dblink el valor del parametro está vacío, por lo que solo saca el nombre de la tabla.
El problema es que tengo que hacer la consulta en iBatis y no sé cómo lo tengo que hacer para poner el nombre de la tabla dinámicamente obteniéndolo a partir del parámetro. ¿Alguien ha tenido que hacer algo similar?