присвоение переменной, а затем ничего не делать с ней - это запах кода
Если мы говорим о запахах кода, иметь функцию, которая изменяет состояние базы данных, немного странно. Соглашение состоит в том, что процедуры изменяют состояние, а функции только читают состояние.
Итак, в качестве примера вы можете реализовать свою функцию ведения журнала как две перегруженные процедуры в пакете средства ведения журнала.
procedure log_this(p1_in number, p2 in timestamp, p_fmt_txt out varchar2);
procedure log_this(p1_in number, p2 in timestamp);
В теле пакета вторая процедура просто вызывает первую процедуру иглотает параметр out.
Теперь вы можете вызывать соответствующую процедуру, в зависимости от того, хотите ли вы увидеть отформатированную строку.
Конечно, это решение не будет работать, если вы хотите вызвать свою функцию в операторе SELECT, но изменение состояния базы данных посредством запроса действительно является запахом кода.