When we compile a big program unit, we may get PLS-00123 if it exceeds any one of compiler limitations that Oracle allows.
ERROR at line 1:
ORA-06550: line 0, column 0:
PLS-00123: program too large
What item in the program unit exceeds the limit is not clear, because the error message didn't tell you. You have to find it out by yourselves.
There's a list of the PL/SQL compiler limit of every items for your reference.
After identifying the item that exceeds the limitation, you should make the program comply with the design rules.
Usually, it's because your program unit is too long, you'd better to split it into several smaller units.