У меня есть 4 удаленных местоположения и явная база данных oracle. Места создают там некоторые транзакции, и я хочу запускать работу/процедуру один раз в день, чтобы вставить новые записи в центральную таблицу в нашем головном офисе. Табличная структура головного офиса и удаленного стола точно такая же.Как вставлять записи из таблиц ссылок данных с помощью НЕ СУЩЕСТВУЮЩИХ
Я запускаю следующий запрос, но он не вставляет никаких записей. Я не хочу использовать материализованные представления или каждый день отбрасывать стол главного офиса и создавать его снова.
INSERT INTO CENTRAL_DATA
SELECT *
FROM (SELECT LOCATION_ID,
INVOICE_ID,
INVOICE_DATE,
ANALYSIS_1,
ANALYSIS_2
FROM [email protected]
UNION ALL
SELECT LOCATION_ID,
INVOICE_ID,
INVOICE_DATE,
ANALYSIS_1,
ANALYSIS_2
FROM [email protected]
UNION ALL
SELECT LOCATION_ID,
INVOICE_ID,
INVOICE_DATE,
ANALYSIS_1,
ANALYSIS_2
FROM [email protected])
WHERE NOT EXISTS (SELECT * FROM CENTRAL_DATA)
Любая помощь будет очень признательна. Спасибо.
Спасибо за ответ. Записи будут уже присутствовать в таблице CENTRAL_DATA, связанной с каждым местоположением, я просто хочу вставить то, что не доступно. В этом случае мои уникальные идентификаторы будут краткими. – user3625561
это сработало, но потребовалось 5 минут для 8 удаленных мест и 143 новых записей. Поскольку это будет работать ежедневно один раз, я не беспокоюсь о времени выполнения. Если какой-либо быстрый метод доступен, я открыт для него. Еще раз спасибо. – user3625561
Возможно, объединение в трех местах замедляет его. Попробуйте сделать это один за другим. – Rene