Копирование / добавление несоответствующих данных между одной и той же таблицей на разных серверах баз данных. - PullRequest
0 голосов
/ 08 февраля 2012

В ответ на мой предыдущий запрос , есть ли способ указать условие для записей, которые будут скопированы с использованием имен столбцов в той же таблице? я хочу скопировать все данные с сервера песочницы на рабочий сервер для всех строк, где COL_A в песочнице не существует на рабочем сервере. Таким образом, предполагаемый select запрос должен быть:

SELECT * FROM <Sandbox><TABLE_C> WHERE <Sandbox><TABLE_C>COL_A NOT EXISTS (SELECT <production>COL_A FROM <production>TABLE_C)

т.е. все записи от песочницы до производства, где не может быть найдено COL_A

1 Ответ

1 голос
/ 08 февраля 2012

Я не уверен насчет специфического синтаксиса Oracle, но что-то в этом роде, если предположить, что вы можете обращаться к ним как к связанным серверам -

INSERT INTO TABLE_C@prod_link
SELECT source.*
FROM TABLE_C source
LEFT JOIN TABLE_C@prod_link target
    ON source.COL_A = target.COL_A
WHERE target.COL_A IS NULL

где prod_link - ссылка на базу данных

CREATE PUBLIC DATABASE LINK 
  prod_link
CONNECT TO
  remote_username
IDENTIFIED BY 
  mypassword 
USING 'tns_service_name';

У меня не работает экземпляр Oracle, на котором я могу это попробовать, но он должен работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...