синхронизация двух таблиц оракула с одинаковой структурой в разных схемах - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть таблица пользователей в схеме A и та же самая в схеме B.мое приложение связано со схемой A, поэтому новые данные добавляются в таблицу в схеме A.Что мне нужно сделать, так это написать процедуру с заданием, чтобы она каждый вечер приносила новые строки в таблицу схемы B. Я не понимаю, что использовать, хотя я видел несколько способов, таких как курсор, слияние, обновление и вставка.

так, что является лучшим решением для моего случая?

Я подумал так:

update db.B.users
 set{
      db.B.users.Id = db.A.Id,
      db.B.users.name= db.A.name,
        ....}
 from A
    JOIN B ,A on db.B.users.Id = db.A.Id

А затем вставьте различные записи в таблицу B

1 Ответ

0 голосов
/ 22 ноября 2018
Выражение

a MERGE для вашего требования будет выглядеть примерно так.

Я предполагаю, что users.Id уникально в вашей таблице A.

MERGE INTO schemaB.users b 
USING schemaA.users a
     ON ( a.Id = b.ID )
WHEN MATCHED THEN UPDATE 
 SET b.name = a.name,  --Don't update ID( you can't )
     b.othercolumn = a.column
    --all other columns
WHEN NOT MATCHED THEN INSERT (
     id,
     name,
     othercolumns ) VALUES (
     a.id,
     a.name,
     a.othercolumns );
...