Before a PL/SQL program can be executed it must be compiled. The PL/SQL compiler resolves references to Oracle objects by looking up their definitions in the data dictionary. Then the compiler assigns storage addresses to program variables that will hold Oracle data so that Oracle can look up the addresses at run time. This process is called binding.
How a database language implements binding affects runtime efficiency and flexibility. Binding at compile time called static or early binding increases efficiency because the definitions of database objects are looked up then not at run time. On the other hand binding at run time called dynamic or late binding increases flexibility because the definitions of database objects can remain unknown until then.