[PL/SQL] cuál es el papel exacto del signo (+) en una cláusula

mathanz Mensajes publicados 1 Estado Miembro -  
 mathanz -
Hola, ¿alguien podría explicarme exactamente el papel de "(+)" en la siguiente consulta, por favor?

select * from table1 t, table2 t2 where
t.t1 = 'toto' AND
t.t2 > 3 AND
t.t4(+) = t2.t1

¡Gracias!

2 respuestas

  1. jee pee Mensajes publicados 9441 Fecha de registro   Estado Moderador Última intervención   9 981
     
    Hola,

    Esta sintaxis se utiliza para incluir en el resultado las filas en las que el campo t.t4 no está informado (se encuentra en NULL). Por lo tanto, estas filas se añaden al resultado además de aquellas que cumplen la condición.

    Esto es lo que se llama una unión externa:

    Cuando una fila de una tabla que figura en una unión no tiene un correspondant en las demás tablas, no satisface el criterio de la equi-join y, por tanto, no figura en el resultado de la unión. Una opción permite hacer figurar en el resultado las filas que satisfacen la condición de la equi-join más aquellas que no tienen un correspondiente. Esta opción se obtiene al anteponer (+) al nombre de la columna de la tabla en la que faltan elementos, en la condición de la equi-join.

    cdt
    26