What tool do you use to start your procedure? By default, most tools do not allocate a buffer for dbms_output for writing and do not display anything written in dbms_output . That is why you will never depend on dbms_output for any real code.
If you are using SQL * Plus, you need to enable serveroutput before executing your procedure
SQL> set serveroutput on; SQL> exec projectinfo( <<some number>> );
If you use a graphical interface, the graphical interface will almost certainly be able to enable dbms_output . But it will be very different for different applications. For example, in SQL Developer, you need to make sure that the DBMS Output window is visible, click the green plus sign and select your connection to enable dbms_output .
source share