В PL SQL я пишу хранимую процедуру, которая использует ссылку на БД:
CREATE OR REPLACE PROCEDURE Order_Migration(us_id IN NUMBER, date_id in DATE)
as
begin
INSERT INTO ORDERS(order_id, company_id)
SELECT ORDER_ID_SEQ.nextval, COMPANY_ID
FROM ORDERS@SOURCE
WHERE USER_ID = us_id AND DUE_DATE = date_ID;
end;
Она принимает все заказы, сделанные за определенный день, определенным пользователем и вставляет их в новую базу данных.,Он вызывает последовательность, чтобы убедиться, что в заказах нет повторяющихся PK, и он работает хорошо.
Однако я хочу, чтобы эта же процедура выполняла вторую INSERT в другую таблицу, в которой order_id является внешним ключом.Поэтому мне нужно добавить все только что созданный order_id и данные из SOURCE, которые соответствуют:
INSERT INTO ORDER_COMPLETION(order_id, completion_dt)
SELECT ????, completion_dt
FROM ORDER_COMPLETION@SOURCE
Как я могу отследить, какой только что созданный order_id соответствует тому, чьи данные мне нужныизвлечь из исходной базы данных?
Я пытался создать временную таблицу, но вы не можете создать ее в процедуре.
Другая информация: я буду вызывать эту процедуру из C #приложение, которое я пишу