Full Outer Join en Oracle
Aunque el título del post podría también ser: SQL ISO vs SQL ANSI. Lo dije y lo vuelvo a decir, no me gusta Oracle para trabajar, pero si el cliente lo pide, pues ni modo, hay que trabajar con dicho producto.
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.
Saludos.






Enero 24th, 2008 at 1:34 pm
[...] Contacto [...]
Enero 31st, 2008 at 5:05 pm
Muy extraño que no le haya funcionado el FULL OUTER JOIN en Oracle, estás seguro de que estabas trabajando con la versión 9i? pues en esta versión Oracle ha ampliado su soporte al standar SQL 92 (ANSI).
En este link pueden encontrar ejemplos y más información al repecto
http://www.oreillynet.com/pub/a/network/2002/04/23/fulljoin.html