Procedural Language extension of SQL (PL/SQL) combines SQL with procedural programming features such as looping, conditionals, and reusable blocks. PL/SQL engine processes PL/SQL statements. PL/SQL statements can reside on the client on server.
PL/SQL blocks are made up of PL/SQL and SQL statements. A block is a functional unit made up of an optional declaration section, an execution section, and an optional exception or error handling section. A block has the following syntax