Full Outer Join en Oracle

La sentencia full outer join de SQL (como lenguaje de consulta) extrae todos los registros de las tablas relacionadas, independientemente de si sus relaciones aparecen o no en la otra tabla. Pues bien, en Oracle no la puedo utilizar, porque no esta permitida, no me pregunten, no soy especialista en Oracle, solo sé que no pude usarla porque no es aceptada. Pero en ocasioes, talvés raras ocasiones, es necesario, es decir, la debes emplear (así vaya contra tus principios como me dijo un compañero).

Pues bién, ¿como hacer esta instucción?, si deseas utilizar la instrucción:

–En SQL 92 (ANSI)
SELECT ename, job, dname
FROM emp e FULL OUTER JOIN dept d
ON e.deptno = d.deptno;

debes hacerla de esta forma:

–En SQL ISO
SELECT ename, job, dname
FROM emp e, dept d
WHERE e.deptno = d.deptno(+)
UNION
SELECT ename, job, dname
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno;

La idea es utilizar la instrucción UNION para unir dos conjuntos de resultado y obetener solo uno, que es finalmente el que me sirve…. y aunque trate de hacerlo con más de dos instrucciones UNION solo funcionó con una, como en el ejemplo… a menos que haya hecho algo mal! ???

Una explicación detallada de estas instrucciones y de las demás join las encuentras en la siguiente dirección web: http://www.zonaoracle.com/manuales-tutoriales-oracle/sql92/index.asp con los ejemplos correspondientes.

Espero que les sea de utilidad.

Contacto