PL/SQL combines the data-manipulating power of SQL with the processing power of procedural language. You can break complex problems into easily understandable subprograms, which you can reuse in multiple applications.
Blocks
The basic unit of a PL/SQL source program is the block, which groups related declarations and statements.
A PL/SQL block is defined by the reserved words: DECLARE
, BEGIN
, EXCEPTION
, and END
. These keywords divide the block into a declarative part, an executable part, and an exception-handling part. Only the executable part is required.
Any PL/SQL block must contain at least one executable statement. The statement may be NULL statement. Otherwise it throws error.

Declarations of local types, variables, & subprograms
Executable statements
Exception handlers for exceptions (errors) raised in executable part