Obtener un ResultSet / RefCursor sobre un enlace de base de datos

De las respuestas allamar a un proceso almacenado a través de un enlace doble parece que no es posible llamar a un procedimiento almacenado y recuperar el ResultSet / RefCursor si está realizando la llamada SP a través de un enlace DB remoto. También estamos usando Oracle 10g.

Podemos obtener con éxito resultados de valor único a través del enlace, y podemos llamar con éxito al SP y obtener los resultados localmente, pero obtenemos el mismo error 'ORA-24338: no se ejecuta el identificador de instrucción' al leer ResultSet desde la base de datos remota.

Mi pregunta: ¿hay alguna solución para usar el procedimiento almacenado? ¿Es una vista compartida una mejor solución? Hileras canalizadas?

Procedimiento almacenado de muestra:

CREATE OR REPLACE PACKAGE BODY example_SP
IS

  PROCEDURE get_terminals(p_CD_community   IN  community.CD_community%TYPE,
                          p_cursor         OUT SYS_REFCURSOR)
  IS
  BEGIN
    OPEN p_cursor FOR
    SELECT cd_terminal
    FROM terminal t, community c
    WHERE c.cd_community = p_CD_community
    AND t.id_community = c.id_community;
  END;

END example_SP;
/

Ejemplo de código Java que funciona localmente pero no de forma remota:

 Connection conn = DBConnectionManagerFactory.getDBConnectionManager().getConnection();
    CallableStatement cstmt = null;
    ResultSet rs = null;
    String community = "EXAMPLE";

    try
    {
        cstmt = conn.prepareCall("{call example_SP.get_terminals@remote_address(?,?)}");
        cstmt.setString(1, community);
        cstmt.registerOutParameter(2, OracleTypes.CURSOR);

        cstmt.execute();

        rs = (ResultSet)cstmt.getObject(2);

        while (rs.next())
        {
              LogUtil.getLog().logInfo("Terminal code=" + rs.getString( "cd_terminal" ));
        }

    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta