У меня есть три базы данных, подключенные удаленно через DBLink, и я хочу создать запись в трех из них. Динамика в этой проблеме заключается в том, что существует компания, которая имеет 3 розничных магазина, в которых они могут продавать предметы, найденные в других. Элемент 1 находится только в retailstore1, item2 находится только в retailstore2 и т. Д. Тем не менее, один магазин может продавать товары, которые в настоящее время не найдены в нем, поэтому ему необходимо запросить другие магазины, чтобы проверить, достаточно ли на складе. Каждый раз, когда один магазин продает, он создает запись в журнале, но только если он был успешным.Несколько действий в одном запросе ORACLE
Это таблицы, используемые в примере.
- розничный магазин # 1: Детали (а целое), LOG (а INT, б INT, с INT)
- розничный магазин # 2: Детали (б целое), LOG (а INT, б INT, с ИНТ)
- розничный магазин # 3: элементы (с ИНТ), LOG (а ИНТ, б ИНТ, с Int)
Теперь я хочу, чтобы проверить, если есть достаточное количество элементов на складе, прежде чем сделать запись в LOG в трех магазинах, но это нужно сделать в рамках одной процедуры запроса или хранения или необходимых шагов, чтобы сделать это возможным. Ограничение заключается в том, что базы данных должны быть открыты один раз, выполнять, закрывать и не более.
Примечание. Если вы знаете, как сделать подход, пожалуйста, помогите мне. Это не обязательно должен быть полный ответ с использованием требуемого синтаксиса. Просто идеи. Спасибо. – ditmark12
У меня возникли проблемы с пониманием вашей точной проблемы, а также с вашей схемой. Если вы хотите получить ответ, вам нужно будет решить этот вопрос. Некоторые рекомендации: какую версию Oracle вы используете? Как вы проверяете, есть ли товар на складе (в таблице Items, которую вы описываете, недостаточно информации). Какова цель таблицы LOG - почему есть три столбца? Вам нужно показать пример потока данных. В отсутствие всего этого прочитайте двухфазные записи (http://docs.oracle.com/cd/B19306_01/server.102/b14231/ds_txnman.htm) –