There're several ways that can add a service to the normal database as followings.
- Instance Level: Alter System set Service_Names
- Database Level: DBMS_SERVICE Create a New Service
- Cluster Level: Srvctl Add Service
The traditional approach only applies to normal databases or in root containers, it's simple and fast.
The DBMS_SERVICE package can make a customized service for both single-instance and RAC databases.
The option is only suitable for RAC database, the difference is that the service is controlled by cluster.
As for adding a service to pluggable database (PDB), it's somewhat different.