Боюсь, вы ошиблись:
v_auth_code := CG$BP_AUTH_CODE.make_auth_code;
--Error happening over here
insert into bp_auth_code (bn, code) values(v_bn, v_auth_code);
commit;
message(v_auth_code); -- I can see the value
Сказать, что «вы можете видеть значение» - нет, вы не можете.
Если INSERT
не удалось, Oracle выдает ошибку ORA-01400, поэтому выполнение останавливается.Ничто за INSERT
не выполняется, включая MESSAGE
вызов.Вы не можете знать ценность, но - на вашем месте я бы доверял Oracle в этом.Если в нем указано, что CODE
равно нулю, тогда оно равно.
В зависимости от используемой версии форм вы можете (всегда) переписать код (для целей отладки) как
v_auth_code := CG$BP_AUTH_CODE.make_auth_code;
message(v_auth_code); -- now you'll see the V_AUTH_CODE value
insert into bp_auth_code (bn, code) values(v_bn, v_auth_code);
commit;
илизапустите форму в режиме отладки (не забудьте установить точку останова!) и отследите ее выполнение.