Just stumbled over a blog post from Steven Feuerstein. He talks about not using DBMS_OUTPUT in our code directly but through a package that allows to turn it on/off and but the output in a table or as indented with DBMS_OUTPUT on screen. You may find Steven’s article here.