Instant Client in Oracle 10g

Tuesday Jun 29th 2004 by James Koopmann

Wouldn't it be nice if you didn't have to install the full Oracle client software just to get connectivity to an Oracle instance? Well, it's now reality with Oracle's new Instant Client software offering.

Wouldn't it be nice if you didn't have to install the full Oracle client software just to get connectivity to an Oracle instance? Well, it is now reality with Oracle's new Instant Client software offering.

Oracle Instant Client

If we wanted to go the java route and name the typical Oracle Client installation as a "Fat-Client," the Oracle Instant Client would be called the "Thin-Client." Oracle's Instant Client is a small set of software and libraries that allow you to develop and deploy your applications without having to install Oracle's Fat-Client. Taking the name and putting a few definitions around it clarifies everything:


We all know who Oracle is. In this case, it is the software, not the company or the database.


Well, almost instant. With very minor download and setup time, Oracle has given us the ability to connect from a remote machine almost as quick as it takes for you to download this small package.


Typical and true client/server nomenclature here. The client here is used to make a request of the database instance. It does not matter if you are connecting to an Oracle instance on the same box as your client software, within the use of Oracle Instant Client, it is always considered to be a client and not part of the requested database.

The good news here is, even though Oracle has given us a very small footprint in this connection mechanism, we do not lose any of the features associated with the connection mechanism or the underlying database instance. If you compared Oracle's full client release against the new Instant Client you would typically find the following.

Client Comparison

Instant Client Package

File Size

Download Time

Install Space

Installation Time


Basic Package

~ 30M

~ 5 min

~ 80M

~ 5min


SQL*Plus Support

< 1M

< 1 min

< 1M

Oracle Database 10g Client Release


~1.5 hours

~ 460M


How to Install Instant Client for SQL*Plus

The installation procedures are the simplest I have ever come across for an Oracle product. Granted, I did have to search for a few different installation procedures for the Instant Client until I actually got all of the steps down. This was a bit frustrating but still did not take all that much time and I was able to find everything through the website. Remember this is only for SQL*Plus and if you want to connect by any of the different supported connection types you may need a few more steps. In addition, it is VERY MUCH RECOMMENDED you DO NOT install these files into an $ORACLE_HOME directory. I would try it but honestly did not want to spend a couple of hours backing out what I did and re-installing my full-blown Oracle Client installation.

1. Download the Basic and SQL*Plus Instant Client packages. You also might want to go ahead and download all of the other packages and keep them together as a single version of this product. Even if you do not have a need for one of the additional support libraries, they do not take but a minute and could come in handy if versions become an issue.

Contents of the Basic Package

Contents of the SQL*Plus Package

2. Unzip the packages that you will be using into a newly created directory of your choice. When I did this, I wanted a truly portable installation and ended up putting this on my USB Flash Drive. Therefore, my directory was E:\OracleInstantClient.

Contents of My Instant Client Directory

3. Set environment variables such that the following are maintained.

  1. SET PATH=E:\OracleInstantClient;%PATH%

    • This is obviously for finding the executables.

  2. SET TNS_ADMIN=E:\OracleInstantClient

    • This is only for finding the tnsnames.ora file. You do not have to have this in the Instant Client directory but if you were on a database box or one that already has the Oracle Client on it, where else would you put it?

  3. SET LD_LIBRARY_PATH=E:\OracleInstantClient

    • Obviously to find the shared libraries shipped with Instant Client.

  4. SET SQLPATH=E:\OracleInstantClient

    • If you use a glogin.sql file, you will need to set this to find it.

4.  Connection methods for SQL*Plus. It does not matter if you install the Instant Client on the database server or on a true client machine, you will always need to specify some form of an Oracle Net connection name or identity. Here are some examples.

  1. After modifying the tnsnames.ora file that is in the directory pointed to by TNS_ADMIN you can use the following
    • Method:  sqlplus <user>/<password>@<tns_entry> 
    • example: sqlplus scott/tiger@daten
  2. If you would rather not use the tnsnames.ora naming, you can bypass this by using a more descriptive connect string.
    • Method: sqlplus <user>/<password>@//<machine>:<port>/<service_name>
    • example: sqlplus scott/tiger@//
  3. You may also wish to bypass the using of an Oracle Net name by setting the environment variables TWO_TASK (on unix) or LOCAL (on windows)
    • Method: SET LOCAL=<service_name>
               sqlplus <user>/<password>
    • example: SET LOCAL=daten
               sqlplus scott/tiger

Other Considerations

When using the Instant Client you may or may not bump up against the following extra considerations for your particular environment.

Connecting as SYSDBA/SYSOPER
You will need to put a password file on the database server you are connecting to.
NLS_LANG For Instant Client, you do not reference an $ORACLE_HOME and thus there is no setting for NLS_LANG. You may need to set this as an environment variable.
Uninstalling Instant Client Just remove the directory where you un-zipped the executables & libraries. You can also unset/remove the environment variables.

The Instant Client is available on a variety of platforms such as Linux, Solaris, HP, IBM AIX, and Windows and supports the following connection types depending on the packages you download.


OCI, OCCI, and JDBC-OCI applications

JDBC Supplement

XA, Internationalization, and RowSet operations under JDBC





The installation procedures for each of these packages at least reads as quick and easy as the SQL*Plus installation done here in this articles. The procedures basically follow what I have shown for SQL*Plus. Just be sure to visit and read the release notes for the specific packages, as there are additional, be it minor, variables or installation procedures to follow.

In a Nutshell

The only way I can conclude this article is simply to state the benefits to this new method for connecting your applications to an Oracle instance.

  1. It is free
  2. Small download times
  3. Small software footprint
  4. No reliance on typical Oracle CD installation
  5. Ease of deployment
  6. No loss of features from full-blown client
  7. Vendors may package their applications more easily without reliance on customer side installation
  8. It is free, needs to be said twice.

» See All Articles by Columnist James Koopmann

Mobile Site | Full Site
Copyright 2017 © QuinStreet Inc. All Rights Reserved