What is the difference between OCI and the Precompilers?
The Oracle OCI (Oracle Call Interface), is an alternate low-level interface to the Oracle database. The SQL precompilers for the various host languages (Pro*C, Pro*Ada, Pro*Fortran, Pro*COBOL, etc.) reads EXEC SQL commands and generate data structures and calls to its runtime library: SQLLIB (libsql.a in UNIX). SQLLIB, in turn, calls the User Program Interface (UPI) to communicate with the database. It does not generate calls to the Oracle Call Interface (OCI) but you can mix OCI and Precompiler calls. For more info about the Oracle Call Interfaces, see the OCI FAQ.