Это догадка:
Есть ли в таблице payment_options
столбец payment_id
?
Я спрашиваю, потому что в следующем утверждении, в PL / SQL, если payment_id существует как столбец, тогда будет использоваться столбец, а не локальная переменная PL / SQL:
SELECT subscriber
INTO test_subscriber
FROM payment_operations_view
WHERE id = payment_id;
Поскольку он использует столбец payment_id
, если он существует, и поскольку он не был установлен во вставке, вы можете выполнять where id = null
, который никогда не оценивается как true.
Я использую v_ для обозначения переменных. Таким образом, ваш фрагмент будет (с остальной частью процедуры, измененной соответственно):
INSERT INTO payment_operations (id, subscriber, amount, description)
VALUES (v_payment_id, 1234, 5, 'Test');
COMMIT;
SELECT subscriber
INTO v_test_subscriber
FROM payment_operations_view WHERE id = v_payment_id;