PL/SQL is Oracle's procedural language extension to SQL that allows users to manipulate and process Oracle data. PL/SQL code can reside on both the client-side and server-side. When executed on the server-side, the entire PL/SQL block is passed to the Oracle server for processing. When on the client-side, only SQL statements are sent to the server for processing while the rest of the block runs on the client. PL/SQL blocks contain a declare, executable, and exception handling section and can be either named or anonymous. Named blocks can be stored procedures and functions while anonymous cannot be stored.