? Коллеги, всем привет! Этот пост будет полезен джунам. В PL/SQL параметры процедур и функций могут быть трех режимов: IN, OUT и IN OUT. От их выбора зависит, можно ли менять значение аргумента и как оно вернется вызывающему коду. Неправильный режим дает странные баги: значение "не меняется", данные внезапно становятся NULL или теряются. Разберем, чем режимы отличаются и когда что выбирать. Кратко о каждом режиме 🔹 IN - значение передается "только на чтение". Внутри можно менять локальную копию, но вызывающая сторона этого не увидит. Это режим по умолчанию. 🔹 OUT - параметр "только на запись". В начале он считается неопределенным; то, что в него передали при вызове, игнорируется. Вы обязаны присвоить ему значение в процедуре, иначе снаружи получите NULL. 🔹 IN OUT - и вход, и выход. В процедуру попадает текущее значение аргумента, и вы можете его изменить, результат вернется вызывающему коду. Пример declare v_in number := 10; v_out number; v_in_out number := 5; proced