Here I list their differences including features, pros and cons for you to evaluate which one should be used for your clients:
- Install-based software
- All-in-one functions
- General-purpose package
- Oracle database enterprise edition download page
Oracle clients stay with Oracle database software, so there's no dedicated download page for Oracle clients.
- One-stop shopping
- Ready Environment variables
You may need only one package for your machine comparing to Oracle instant client. That is to say, one install can provide almost everything you need, such as SQL*Plus, tnsping, JDBC drivers, OCI, etc.
You don't have to worry about the settings of environment variables. They are all set as registry parameters during installation.
- Needs to be installed
- Software conflicts
You have to spend time to install the software, it could be a lengthy work to do. If something is wrong, you may need to uninstall the software and start it over. As a result of uninstallation, there could be some footprints that you have not cleaned out yet.
You may see software conflicts in your machine because of newer Java, Windows update, other Oracle clients or 3rd-party tools. Moreover, successful installations do not always guarantee that you can use the software successfully. As I know, it's a force-closed phenomenon.
Oracle Instant Client
- Out-of-box and portable
- Partial functions in a package
- Specific-purpose packages
- Oracle instant client download page
You can just unzip the package and start to use it. Which means, you can put it in any media and then carry it to anywhere. So that boosts your productivity either on database administration or quick client deployment.
Since every package has its own binaries for specific purpose, so the whole package is pretty small in size and very suitable for software distribution.
Different versions of Oracle instant clients can coexist in you machine. If you found any conflicts, you can just unplug (delete) the unnecessary versions (folders) anytime you want.
- Varying packages
- Environment variables setting
- No tnsping
Different packages are for different purposes in same version, that can make you confused about which is which. You need to know the purpose of every package including what it has, what it can do. For example, basic package does not contain SQL*Plus, you need another package.
Oracle instant clients are independently operated in your machine. You have to set environment variables by yourself. Sometimes, it's a tedious job for users to do. In practice, the most important environment variables in Windows would be ORACLE_HOME_NAME, ORACLE_HOME and TNS_ADMIN. At least, you have to know how to set TNS_ADMIN.
tnsping is a very important utility for DBA to troubleshoot the connectivity problem for users. It's not in any package of Oracle instant client. At least I don't see it anywhere. Does there anyone know about that?
Further reading: How to Check 32-bit or 64-bit Oracle Client