The variables must match (both in number and positionally) the columns listed in the cursor definition.
Implementations from version 8 of Oracle Database onwards have included features associated with object-orientation.
One can create PL/SQL units such as procedures, functions, packages, types, and triggers, which are stored in the database for reuse by applications that use any of the Oracle Database programmatic interfaces.
PL/SQL works analogously to the embedded procedural languages associated with other relational databases.
PL/SQL is available in Oracle Database (since version 7), Times Ten in-memory database (since version 11.2.1), and IBM DB2 (since version 9.7).
Oracle Corporation usually extends PL/SQL functionality with each successive release of the Oracle Database.
PL/SQL includes procedural language elements such as conditions and loops.
It allows declaration of constants and variables, procedures and functions, types and variables of those types, and triggers. Arrays are supported involving the use of PL/SQL collections.
Until Oracle has retrieved all the rows then by definition it does not have an accurate record of how many there are.
Of course user_tables or dba_tables will have a count of the number of rows (NUM_ROWS), but this is only as up to date as the statistics.