Как вернуть значение в переменную дважды, чтобы я мог использовать их в двух отдельных операторах вставки - PullRequest
0 голосов
/ 26 сентября 2018

Итак, я пытаюсь сохранить автоматически сгенерированный (из триггера / последовательности) идентификатор в переменную для использования в двух последующих операторах вставки.Однако я заметил, что в мою вторую таблицу ( temp_calc ) не вставляются никакие данные, и я не могу вернуть одно и то же значение ( computing_id ) в две разные переменные.Как я могу использовать одно и то же значение, возвращенное в v_calculation_id в обоих операторах вставки?Ниже мой (попытался, но неверный) код:

insert into calculation(calculation_id, calculation_Date, calculation_name)
                VALUES(null, sysdate, 'TEST')
              returning calculation_id into v_calculation_id;
-- 
INSERT INTO calculation_trans (calculation_id, calculation_trans_type_id, create_dt)
                       values (v_calculation_id, 776, sysdate);
--
insert into temp_calc (calculation_id, flag_type_id)                            
               VALUES (v_calculation_id, 75462355);

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

лучше попробуйте с ВОЗВРАТОМ вашего первичного ключа

0 голосов
/ 26 сентября 2018

Вам необходимо использовать блок PL / SQL:

DECLARE 
  v_calculation_id NUMBER;
BEGIN
-- removing calculation_id(it should be IDENTITY/default SEQ/trigger)
insert into calculation( calculation_Date, calculation_name)
VALUES(sysdate, 'TEST')
returning calculation_id into v_calculation_id;

INSERT INTO calculation_trans(calculation_id,calculation_trans_type_id, create_dt)
values (v_calculation_id, 776, sysdate);

insert into temp_calc (calculation_id, flag_type_id)                            
VALUES (v_calculation_id, 75462355);
COMMIT;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...