Как commit работает в oracle - PullRequest
       33

Как commit работает в oracle

1 голос
/ 30 января 2012

У меня есть пара утверждений, псевдокод будет выглядеть примерно так:

insert into local_table
crease savepoint sp1

insert into remote_db //using db_link
update local_table2
delete from local_table
commit

Теперь я немного запутался в вставке в оператор remote_db .Есть ли вероятность того, что применяемый коммит по-разному влияет на локальную базу данных и удаленную базу данных?

Постановка задачи довольно сложная.скрипт, который копирует данные из локальной базы данных в удаленную базу данных, создает дубликаты.После расследования, это единственное место, которое выглядит подозрительно, но я не уверен.Буду очень признателен, если кто-нибудь сможет пролить свет на COMMIT oracle.

1 Ответ

2 голосов
/ 30 января 2012

Если вы спрашиваете, может ли commit потенциально вызвать дублирование строк, нет, это невозможно.

Учитывая способ, которым происходят распределенные транзакции, возможно, что эта транзакция не будет зафиксирована ввсе в удаленной базе данных (в этом случае это будет сомнительная распределенная транзакция, которую удаленный администратор базы данных, вероятно, должен будет разрешить).Но если транзакция зафиксирована успешно, она будет зафиксирована правильно.Невозможно, чтобы некоторые строки были зафиксированы, а другие - нет, или что дублирующие строки, которых не было до фиксации, были бы созданы актом фиксации.

...