A PL/SQL subprogram that performs a specified sequence of actions. . Can reside and execute on the client and the database server.