Необходимо написать запрос, который позволит понять, идентичны ли данные в двух таблицах. Порядок хранения данных в таблицах значения не имеет. Пример данных:
CREATE TABLE T1 (A INTEGER, B INTEGER) NOLOGGING; INSERT INTO t1 (a, b) VALUES (1, 1); INSERT INTO t1 (a, b) VALUES (2, 2); INSERT INTO t1 (a, b) VALUES (2, 2); INSERT INTO t1 (a, b) VALUES (3, 3); INSERT INTO t1 (a, b) VALUES (4, 4); COMMIT WORK; / CREATE TABLE T2 (A INTEGER, B INTEGER) NOLOGGING; INSERT INTO t2 (a, b) VALUES (1, 1); INSERT INTO t2 (a, b) VALUES (2, 2); INSERT INTO t2 (a, b) VALUES (3, 3); INSERT INTO t2 (a, b) VALUES (3, 3); INSERT INTO t2 (a, b) VALUES (4, 4); COMMIT WORK; /
Варианты запроса:
SELECT t1.* FROM t1 WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE t2.a = t1.a AND t2.b = t1.b) UNION ALL SELECT t2.* FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t1 WHERE t1.a = t2.a AND t1.b = t2.b); / SELECT t1.* FROM t1 MINUS SELECT t2.* FROM t2 UNION ALL SELECT t2.* FROM t2 MINUS SELECT t1.* FROM t1; /
P.S.
Конфигурация СУБД — Oracle Database 11g Express Edition Release 11.2.0.2.0
IDE — PL/SQL Developer Version 11.0.6.1776