Saltar al contenido

Cómo comparar dos tablas columna por columna en Oracle

Hola usuario de nuestra página web, encontramos la respuesta a tu pregunta, deslízate y la verás un poco más abajo.

Solución:

select *
from 
(
( select * from TableInSchema1
  minus 
  select * from TableInSchema2)
union all
( select * from TableInSchema2
  minus
  select * from TableInSchema1)
)

debería funcionar si quieres resolver esto con una consulta

Como una alternativa que ahorra el escaneo completo de cada tabla dos veces y también le brinda una manera fácil de saber qué tabla tenía más filas con una combinación de valores que la otra:

SELECT col1
     , col2
     -- (include all columns that you want to compare)
     , COUNT(src1) CNT1
     , COUNT(src2) CNT2
  FROM (SELECT a.col1
             , a.col2
             -- (include all columns that you want to compare)
             , 1 src1
             , TO_NUMBER(NULL) src2
          FROM tab_a a
         UNION ALL
        SELECT b.col1
             , b.col2
             -- (include all columns that you want to compare)
             , TO_NUMBER(NULL) src1
             , 2 src2
          FROM tab_b b
       )
 GROUP BY col1
        , col2
HAVING COUNT(src1) <> COUNT(src2) -- only show the combinations that don't match

El crédito va aquí: http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1417403971710

Comentarios y puntuaciones

Tienes la posibilidad dar recomendación a esta división si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *