PL/SQL is Oracle's procedural language extension to SQL. It allows you to manipulate Oracle data using SQL statements and process data using flow control statements. PL/SQL fully integrates modern programming features like data encapsulation and exception handling. It is a block structured language where blocks contain declarations and statements. Key PL/SQL concepts include datatypes, variables, constants, expressions, assignments, scope and visibility rules.