Oracle Stored Procedures / schema maintenace but still keep service online, how?
Why does the service need to be taken down when you fix a bug?

You can deploy a new PL/SQL package without shutting anything down.  If you are changing the interface between packages or to the middle tier this may be complicated by needing to keep a backwards compatible version of some procedures or functions around.

If someone is running the existing PL/SQL package then your install of a new package will block until the user exits as it needs to obtain a lock at the package level.