Siehe die Änderung unten, den Aufruf von title_crud
hat keine Variable, um zu halten, was von ihm zurückgegeben wird (p_err)
PROCEDURE create_title(
P_TITLE varchar2,
P_USER varchar2,
P_ERR OUT VARCHAR2
)
IS
BEGIN
IF P_TITLE IS NULL THEN
P_ERR := 'Null value';
ELSE
title_crud('I',NULL,P_TITLE,P_USER,P_ERR); -- Extra Parameter
END IF;
END;
PROCEDURE title_crud(
P_OP_TYPE VARCHAR2,
P_ID number,
P_TITLE varchar2,
P_USER varchar2,
P_ERR OUT VARCHAR2
)...
Ein leicht zu machender Fehler, aber ich finde es einfacher zu vermeiden, wenn Sie eine Prozedur aufrufen, bei der Sie Parameter in benannter Notation übergeben. Ihr Aufruf von title_crud wird zu
...
title_crud(P_OP_TYPE => 'I',
P_ID => NULL,
P_TITLE => P_TITLE,
P_USER => P_USER,
P_ERR => P_ERR);
...