---
title: "Do You Need Oracle Instant Client? Thin vs Thick Mode, Tool by Tool"
description: "When you need Oracle Instant Client and when you don't: Thin vs Thick mode, which tools need a client, NJS-533/116/138 fixes, versions, licence."
url: "https://jamsql.com/blog/2026-10-23-oracle-instant-client-thin-vs-thick/"
html_url: "https://jamsql.com/blog/2026-10-23-oracle-instant-client-thin-vs-thick/"
generated: "2026-10-25T01:35:22.720Z"
---

Published: 2026-10-23

# Do You Need Oracle Instant Client? Thin vs Thick Mode, Tool by Tool

You need Oracle Instant Client only when something on your machine runs in **Thick mode**. Most Oracle GUI clients today connect without it: Oracle SQL Developer and DataGrip use Oracle’s JDBC Thin driver, DBeaver connects through a JDBC driver and needs a local client only for native tools, the SQL Developer extension for VS Code includes everything it needs to connect, and Beekeeper Studio and Jam SQL Studio default to a Thin mode. You do need Instant Client (or a full Oracle Client) for PL/SQL Developer, to run SQL\*Plus, SQL\*Loader or Data Pump locally, and when the Thin mode of the Node.js or Python driver meets a server it cannot talk to: one that requires Native Network Encryption (`NJS-533` / `DPY-3001`), an account with only a 10G password hash (`NJS-116` / `DPY-3015`), or a server older than 12.1 (`NJS-138` / `DPY-3010`). Instant Client itself is free. Below: what each tool’s vendor says, what each error means and how to fix it on the server or with Thick mode, which Instant Client goes with which server, and what we measured against old and locked-down servers while building Thick mode for Jam SQL Studio 1.5.7.

## The short answer

Situation

Instant Client needed?

SQL Developer, its VS Code extension, DBeaver or DataGrip, to connect and run queries

No

node-oracledb or python-oracledb in Thin mode against Oracle Database 12.1 or later

No, unless one of the next three rows applies

The server requires Native Network Encryption or checksumming (`NJS-533` / `DPY-3001`)

Yes, for Thick mode — or the server switches to TLS

The account has only a 10G password verifier (`NJS-116` / `DPY-3015`)

Yes, for Thick mode — or a DBA resets the password

The server is older than 12.1 (`NJS-138` / `DPY-3010`)

Yes, Instant Client 19 for the driver — but Jam SQL Studio needs 12.1 or later to connect, in both modes, and supports 12.2 and later

Kerberos or RADIUS sign-in with node-oracledb or python-oracledb

Yes (Thick mode only)

PL/SQL Developer

Yes, matching its 32-bit or 64-bit build

SQL\*Plus, SQL\*Loader or Data Pump on your own machine

Yes — they ship as Instant Client packages

## Thin and Thick mode in Oracle’s drivers

Oracle’s Node.js and Python drivers work in two modes. In **Thin mode**, the default, the driver implements Oracle’s network protocol itself: per the [node-oracledb installation guide](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/installation.html) it “directly connects to Oracle Database 12.1 or later” and “does not need Oracle Client libraries”. In **Thick mode** the application calls `initOracleClient()` (`init_oracle_client()` in Python) and the driver loads Oracle Client libraries — Instant Client or a full client — and talks to the database through them. The [mode is chosen once per application](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/initialization.html): “All connections in an application use the same mode.”

The differences that decide whether you need Instant Client, from the [node-oracledb 7.0.1 comparison of the two modes](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/appendix_a.html) (the version Jam SQL Studio ships):

Feature

Thin mode

Thick mode

Oracle software on your machine

None

Oracle Client libraries, version 19 or later in node-oracledb 7

Oracle Database versions

12.1 and later

11.2 and later, depending on the Oracle Client version

Native Network Encryption and checksumming

No — use TLS instead

Yes

Password verifiers

11G and later

10G and later

Kerberos, RADIUS and PKI authentication

No

Yes

One-way TLS

Yes

Yes

Mutual TLS wallet

`ewallet.pem` (PEM format)

`cwallet.sso`

python-oracledb draws the same lines. Its [feature comparison](https://python-oracledb.readthedocs.io/en/latest/user_guide/appendix_a.html) lists Oracle Database 12.1 and later for Thin and 11.2 and later for Thick, Native Network Encryption as “No – use TLS instead” in Thin, and Kerberos and RADIUS as Thick only; its [Thin/Thick differences page](https://python-oracledb.readthedocs.io/en/latest/user_guide/appendix_b.html) says Thick mode “requires Oracle Client library version 19 or later.”

### JDBC Thin is a different driver

“Thin” means something else in Java. Oracle’s JDBC Thin driver is a separate driver, written in Java, and it covers more than the Node.js and Python Thin modes do. Oracle’s [Database Security Guide](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-thin-jdbc-client-network.html) says “the Thin JDBC driver provides security features such as strong authentication, data encryption, and data integrity checking”: AES256, AES192 and AES128 encryption, and RADIUS, Kerberos and SSL authentication. Its encryption and checksum levels default to `ACCEPTED`, which the [Net Services Reference](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html) defines as enabling the service “if required or requested by the other side”. So a tool on JDBC Thin can negotiate the encryption a server demands, where the Node.js and Python Thin modes stop with an error. When SQL Developer or DataGrip connects to a server and a Node.js or Python tool does not, that difference is the first thing to check.

## Does my tool need Oracle Client?

Each row is what the vendor’s own documentation says, checked on October 23, 2026. Where a vendor does not say, the cell says so.

Tool

Needs a client to connect?

When a client comes in

Source

Oracle SQL Developer

No — JDBC Thin driver

**Preferences → Database → Advanced**: **Use Oracle Client** (an Oracle Home or Instant Client) and **Use OCI/Thick driver**, which Oracle says to tick for connections that use a RADIUS server. **Create Local Connections** needs an Oracle Home of release 11.2.0.3 or later.

[SQL Developer 24.3 User’s Guide](https://docs.oracle.com/en/database/oracle/sql-developer/24.3/rptug/sql-developer-concepts-usage.html)

SQL Developer extension for VS Code

No

Oracle’s listing: “Everything required to connect to your database is included in the extension.”

[VS Code Marketplace, version 26.3.0](https://marketplace.visualstudio.com/items?itemName=Oracle.sql-developer)

SQLcl

No — thin JDBC driver by default

The thick driver needs a full client, database or Instant Client installation of version 23 or later, found through `ORACLE_HOME`.

[SQLcl 25.3 User’s Guide](https://docs.oracle.com/en/database/oracle/sql-developer-command-line/25.3/sqcug/configuring-thick-driver-support-sqlcl.html)

Toad for Oracle (Windows)

No — “An Oracle client is optional”

Without a client, SQL\*Plus, Data Pump, Import/Export, SQL\*Loader, TKProf, TNSPing and Wrap are unavailable. Supported clients: Oracle Client or Instant Client 10.2.0.5 through 23ai, matching Toad’s 32-bit or 64-bit build.

[Toad for Oracle 2026 R1 release notes](https://support-public.cfm.quest.com/82280_ToadForOracle_2026_R1_ReleaseNotes.pdf)

Toad for Oracle on Mac

No — a clientless connection by default

Includes Instant Client 19c and 23c, which cannot be replaced; switching to them adds features “such as Kerberos authentication”.

Same release notes

PL/SQL Developer

**Yes**

“The 32 bit PL/SQL Developer version requires a 32 bit Oracle Client and the 64 bit PL/SQL Developer version requires a 64 bit Oracle Client.” Windows only.

[Allround Automations system requirements](https://www.allroundautomations.com/products/pl-sql-developer/system-requirements/)

DBeaver

No — JDBC driver

A local client is needed for native tools such as backup and restore. A JDBC OCI connection, set up as a custom driver, “require\[s\] Oracle Instant Client on the local machine”.

DBeaver docs: [Local client](https://dbeaver.com/docs/dbeaver/Local-Client-Configuration/), [JDBC OCI driver](https://dbeaver.com/docs/dbeaver/Connecting-to-Oracle-Database-using-JDBC-OCI-driver/)

DataGrip

No with the **Thin** driver mode (“connects to the server directly”)

The **OCI** and **OCI8** driver modes “use native libraries to connect to the server”.

[DataGrip 2026.2 Help](https://www.jetbrains.com/help/datagrip/oracle.html)

Beekeeper Studio

No — Thin mode is the default

Thick mode “requires the Oracle Instant Client” (plus libaio on Linux); the docs suggest it after a Thin-mode error. The Windows on ARM build is Thin only.

[Beekeeper Studio Oracle guide](https://docs.beekeeperstudio.io/user_guide/connecting/oracle-database/), [Windows requirements](https://docs.beekeeperstudio.io/installation/windows/)

Jam SQL Studio 1.5.7

No — node-oracledb 7.0.1 in Thin mode

Optional Thick mode with Instant Client 19 or later on Windows, Linux and Apple-silicon Macs; not available on Intel Macs. Needs Oracle Database 12.1 or later to connect in both modes; supported on 12.2 and later.

[Thin and Thick mode](/docs/connections/#oracle-thick-mode)

The pattern: tools built on Java connect through JDBC and keep the native client for extras (RADIUS in SQL Developer, Kerberos in Toad on Mac, the command-line utilities everywhere). Tools built on the Node.js or Python driver need Instant Client in the three cases below. PL/SQL Developer is the one tool in this list that cannot connect without a client. For a wider comparison of these tools, see [Oracle SQL clients compared](/alternatives/best-oracle-client/).

## NJS-533 / DPY-3001: the server requires network encryption

node-oracledb reports it as:

```
NJS-533: Advanced Networking Option service negotiation failed. Native Network Encryption and DataIntegrity only supported in node-oracledb thick mode.
```

python-oracledb as `DPY-3001: Native Network Encryption and Data Integrity is only supported in python-oracledb thick mode`; its [documentation](https://python-oracledb.readthedocs.io/en/latest/user_guide/appendix_b.html) adds that the same server can also produce `DPY-4011` or `DPY-6000`, and gives Oracle Cloud Infrastructure Base Database, where Native Network Encryption is set to `REQUIRED` by default, as an example.

**What it means.** The server’s `sqlnet.ora` sets `SQLNET.ENCRYPTION_SERVER` or `SQLNET.CRYPTO_CHECKSUM_SERVER` to `REQUIRED`, which per the [Net Services Reference](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html) means the server will “disallow the connection if the other side is not enabled for the security service”. Thin mode in Node.js and Python does not implement that service. A DBA can confirm it from any session that does connect with `SELECT network_service_banner FROM v$session_connect_info;`, the query the [python-oracledb troubleshooting guide](https://python-oracledb.readthedocs.io/en/latest/user_guide/troubleshooting.html) suggests.

**Server-side fix.** Both drivers’ documentation points to TLS: enable a TCPS listener, which Thin mode supports. The other option is to set the two parameters to `REQUESTED` or `ACCEPTED` (the default) instead of `REQUIRED`, so clients without encryption can still connect — a security decision for whoever made it required.

**Thick-mode fix.** Thick mode supports Native Network Encryption and checksumming. Against an Oracle 23ai Free server set to require encryption, Thin mode failed with `NJS-533` and Thick mode with Instant Client 23.26.3 connected, with AES256 negotiated.

**In Jam SQL Studio.** From 1.5.7 the connection error explains that the server requires network encryption or checksums and shows a **Use Thick mode…** button that opens **Settings → Oracle Client**. The button appears when Thick mode is available on the computer and the app is not already running in it.

## NJS-116 / DPY-3015: the account has only a 10G password hash

```
NJS-116: password verifier type 0x939 is not supported by node-oracledb in Thin mode
```

python-oracledb: `DPY-3015: password verifier type 0x939 is not supported by python-oracledb in thin mode`.

**What it means.** Oracle stores a password as one or more verifiers: 10G (case-insensitive), 11G (SHA-1) and 12C (SHA-2, SHA-512). Per the [node-oracledb documentation](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/appendix_a.html#password-verifier-support), Thin mode supports 11G and later and Thick mode 10G and later, so an account created with only a 10G verifier cannot sign in through Thin mode. Such accounts survive on servers that allow older logon versions: the default `SQLNET.ALLOWED_LOGON_VERSION_SERVER` of `12` “enables only the 11G and 12C password versions” ([Net Services Reference](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html)).

**Server-side fix.** A DBA finds the accounts with

```sql
SELECT username FROM dba_users
WHERE (password_versions = '10G ' OR password_versions = '10G HTTP ')
  AND username <> 'ANONYMOUS';
```

and follows Oracle’s [Finding and Resetting User Passwords That Use the 10G Password Version](https://docs.oracle.com/en/database/oracle/oracle-database/19/spmsu/finding-and-resetting-user-passwords-10g-password-version.html): temporarily allow logon version 11, expire those passwords (`ALTER USER … PASSWORD EXPIRE`), and when each user sets a new password the database generates the 11G and 12C verifiers. This has a deadline: per Oracle’s [23ai release changes](https://docs.oracle.com/en/database/oracle/oracle-database/23/dbimi/changes-this-release-dbimi.html), the 10G verifier “is no longer supported or available on Oracle Database 23ai”, so these accounts have to be fixed before an upgrade to 23ai anyway.

**Thick-mode fix.** Until then, Thick mode signs in. An account with only a 10G verifier on Oracle 18c XE failed in Thin mode with `NJS-116` and connected in Thick mode with both Instant Client 19.32 and 23.26.3, with no change to the client’s `sqlnet.ora`. Instant Client 23 connected experimentally, outside its documented server range; use Instant Client 19 for 18c.

**In Jam SQL Studio.** The connection error says the account still has an old (10G) password hash, and from 1.5.7 it shows the same **Use Thick mode…** button as for `NJS-533`.

## NJS-138 / DPY-3010: the server is older than 12.1

```
NJS-138: connections to this database server version are not supported by node-oracledb in Thin mode
```

python-oracledb: `DPY-3010: connections to this database server version are not supported by python-oracledb in thin mode`. The [python-oracledb troubleshooting guide](https://python-oracledb.readthedocs.io/en/latest/user_guide/troubleshooting.html) names the cause as Oracle Database 11.2 or earlier, and gives two fixes: Thick mode, or upgrading the database to 12.1 or later.

**For the driver,** Thick mode with Instant Client 19 works: Oracle’s [Instant Client download page](https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html) says “Oracle Call Interface 19 and 18 can connect to Oracle Database 11.2 or later”. In our test, node-oracledb in Thick mode with Instant Client 19.32 connected to an Oracle 11.2.0.2 XE server that Thin mode refused with `NJS-138`.

**For Jam SQL Studio, it is not enough.** Thin mode needs Oracle Database 12.1 or later, Jam SQL Studio needs 12.1 or later to connect, and it supports 12.2 and later; this holds in both modes. The 11.2 server shows why the floor sits there: `DBMS_SQL.RETURN_RESULT` does not exist on it, because implicit results need [Oracle Database 12.1 or later](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/plsql_execution.html#implicit-results). The connection error says plainly that the server version is not supported and that the app needs 12.1 or newer, and it offers no Thick-mode button, because Thick mode would not help. The fix is a server upgrade. If you have to keep working with an 11g server meanwhile, the vendors of several tools list it as supported: Toad for Oracle (10g Release 2 and later, per its release notes), PL/SQL Developer (7.x and later), DataGrip (versions 9–23 per its help page) and DBeaver (its `Oracle` driver for 11 and later, `Oracle (Legacy)` for 8–10, per its [Oracle page](https://dbeaver.com/docs/dbeaver/Oracle/)).

## Which Instant Client for which server

The [node-oracledb installation guide](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/installation.html) summarizes the pairings: “Oracle Client 23 can connect to Oracle Database 19 or later”, “Oracle Client 21 can connect to Oracle Database 12.1 or later”, and “Oracle Client 19 can connect to Oracle Database 11.2 or later”. Oracle keeps the full client/server matrix in My Oracle Support Doc ID 207303.1, which its [Instant Client FAQ](https://www.oracle.com/database/technologies/faq-instant-client.html) points to. Drivers add their own floor: node-oracledb 7 and python-oracledb need Oracle Client 19 or later for Thick mode, and SQLcl’s thick driver needs 23.

Your server

Instant Client to install

Oracle Database 19c, 21c, 23ai or 26ai

23

12.1, 12.2 or 18c

19 (21 also covers 12.1 and later)

11.2

19 for node-oracledb or python-oracledb; not supported by Jam SQL Studio

What Oracle offers depends on the platform. From the Instant Client download pages on October 23, 2026:

Platform

Current releases (19 and later)

Notes

[Windows x64](https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html)

23.26, 21c, 19c

The 23.26 Basic package needs the latest Microsoft Visual C++ Redistributable for Visual Studio 2015–2022

[Linux x86-64](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html)

23.26, 21.23, 19.32

[Linux ARM64](https://www.oracle.com/database/technologies/instant-client/linux-arm-aarch64-downloads.html)

23.26, 19.32

[macOS ARM64 (Apple silicon)](https://www.oracle.com/database/technologies/instant-client/macos-arm64-downloads.html)

23.26 only

No Instant Client 19 or 21, so Thick mode on these Macs reaches Oracle Database 19c and later

[macOS Intel x86-64](https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html)

19.16

DMG only; node-oracledb 7 no longer ships its Thick-mode binary for Intel Macs

Two Mac notes. On Apple silicon, Oracle’s download page offers only Instant Client 23, so a Thick-mode setup you install yourself reaches 19c and newer servers; for a 12.x or 18c server from an M-series Mac, use a Thin-mode tool. On an Intel Mac, Oracle still offers Instant Client 19.16, but the [node-oracledb 7 installation guide](https://node-oracledb.readthedocs.io/en/v7.0.1/user_guide/installation.html#installing-node-js-and-node-oracledb-on-apple-macos) says “the binary for macOS Intel x86-64 has been removed”, so Jam SQL Studio is Thin-only there. [Oracle on Apple Silicon without Instant Client](/blog/2026-07-07-oracle-apple-silicon-no-instant-client/) covers the Thin side on M-series Macs, and [How to Run Oracle Database on a Mac](/blog/2026-10-14-run-oracle-database-on-mac/) the server side.

## Is Oracle Instant Client free?

Yes. Oracle’s [Instant Client FAQ](https://www.oracle.com/database/technologies/faq-instant-client.html) answers it directly: “Instant Client is free from OTN for anyone to use in a development or production environment. However, customers can only call Oracle Support if they already have a standard support contract.” On redistribution: “Subject to the license, Instant Client can be bundled and redistributed for free.” The [Instant Client page](https://www.oracle.com/database/technologies/instant-client.html) lists “Free to download, deploy and distribute” among its features, along with SQL\*Plus, SQL\*Loader and Data Pump as included tools.

The other Oracle client software is free too: the [SQL Developer FAQ](https://www.oracle.com/database/technologies/appdev/sqldev/sql-developer-faq.html) calls SQL Developer “a free no cost product” under the OTN License agreement, and Oracle’s [SQL Developer page](https://www.oracle.com/database/sqldeveloper/) describes SQLcl as “a free and modern command line interface”. These licences cover the client software, not the database you connect to. Third-party clients have their own terms; Jam SQL Studio is free for personal, non-commercial use, and commercial use needs Pro.

## What we measured

These are driver-level connection tests with node-oracledb 7.0.1 against three test servers that Thin mode cannot reach, one per error, with both standalone and pooled connections, on October 23, 2026. They do not establish Jam SQL Studio support for 11.2:

Server

Thin mode

Thick, Instant Client 19.32

Thick, Instant Client 23.26.3

Oracle 11.2.0.2 XE

`NJS-138`

Connects

Connects\*

Oracle 18c XE, account with only a 10G password hash

`NJS-116`

Connects

Connects\*

Oracle 23ai Free requiring network encryption

`NJS-533`

Not tested

Connects, AES256

\* Instant Client 23 is documented for Oracle Database 19c and later. It connected to the 11.2 and 18c servers in our test, but that pairing is outside what Oracle documents; use Instant Client 19 for them.

Three things stood out:

-   **`NJS-138` is a driver limit, not a network problem.** The same 11.2 server that Thin mode refuses accepts a Thick connection. Jam SQL Studio needs 12.1 or later to connect in both modes, and supports 12.2 and later.
-   **The 10G account needed no client-side `sqlnet.ora` changes.** Both Instant Client versions signed in to it. We could not repeat the test on 23ai: that release cannot hold a 10G-only account at all.
-   **The error text points to the fix.** All three Thin-mode messages name Thin mode, and `NJS-533` names Thick mode, so they are the place to start when a connection that works in one tool fails in another.

Before 1.5.7, Jam SQL Studio had no Thick mode, and these errors ended the attempt. We grouped anonymous connection events by engine and driver error code. In the 30 days to October 17, 2026, 22 devices hit one of the three errors — `NJS-138` on 10, `NJS-116` on 8 and `NJS-533` on 4 — and only 1 of the 22 ever connected to Oracle. Twelve of them (`NJS-116` and `NJS-533`) encountered error types Thick mode can address on compatible setups; the 10 on servers older than 12.1 need a server upgrade.

## Setting up Thick mode in Jam SQL Studio

1.  Install Oracle Instant Client 19 or later (the Basic or Basic Light package) for your operating system and processor: 23 for 19c and newer servers, 19 for 12.1 to 18c.
2.  Open **Settings → Oracle Client** and choose **Thick**.
3.  Set the **Instant Client folder**: type it, click **Browse…**, or click **Find installed** to list the Instant Client folders on the computer with their versions. An Instant Client older than 19 is refused, with its version shown.
4.  Optionally set an **Oracle Net folder** for `sqlnet.ora` and `tnsnames.ora`. Without an explicit folder, the app uses `TNS_ADMIN` when set. Otherwise it checks `ORACLE_BASE_HOME/network/admin`, `ORACLE_HOME/network/admin`, then the client’s configuration folders for configuration files, before using a folder it manages ([details](/docs/connections/#oracle-thick-net-folder)).
5.  Click **Save**, then **Restart to apply**. The mode applies to the whole app from the next start, so restarting closes open connections.

Thin mode stays the default and needs nothing installed. Thick mode is available on Windows, Linux and Apple-silicon Macs; on Intel Macs Settings shows it as unavailable. The [connections guide](/docs/connections/#oracle-thick-mode) has the per-OS setup (the Visual C++ Redistributable on Windows, libaio on Linux, moving the folder out of Downloads on macOS), Windows folder-name limits and wallet requirements. [Jam SQL Studio for Oracle](/databases/oracle/) lists what the app does once connected.

## Quick Answers

Short answers to common questions about Oracle Instant Client and Thin and Thick mode.

### Q: Do I need Oracle Instant Client to connect to Oracle Database?

A: Not with a Thin-mode driver. The JDBC Thin driver behind SQL Developer and DataGrip, and the Thin modes of node-oracledb and python-oracledb, connect over the network without Oracle Client libraries. You need Instant Client for Thick mode: when a Node.js or Python driver in Thin mode meets a server that requires Native Network Encryption, an account with only a 10G password verifier or a server older than 12.1. You also need it for PL/SQL Developer, and to run SQL\*Plus, SQL\*Loader or Data Pump on your own machine.

### Q: Does SQL Developer need an Oracle client?

A: No. Oracle SQL Developer connects with the JDBC Thin driver, and the SQL Developer extension for VS Code includes everything it needs to connect. In the desktop app, Preferences → Database → Advanced has Use Oracle Client (an Oracle Home or Instant Client) and Use OCI/Thick driver; Oracle's guide says to turn the OCI driver on for connections that use a RADIUS server.

### Q: Is Oracle Instant Client free?

A: Yes. Oracle's Instant Client FAQ says it is free for anyone to use in a development or production environment, and that it can be bundled and redistributed for free, subject to its licence. Calling Oracle Support about it needs a standard support contract. Oracle SQL Developer and SQLcl are also free.

### Q: What is the difference between Thin and Thick mode?

A: A Thin-mode driver implements Oracle's network protocol itself and needs no Oracle software on your machine; the Thin modes of node-oracledb and python-oracledb connect to Oracle Database 12.1 and later. Thick mode loads Oracle Client libraries such as Instant Client and adds what those Thin modes lack: Native Network Encryption and checksumming, 10G password verifiers, Kerberos and RADIUS authentication, and servers back to 11.2 with Instant Client 19.

### Q: How do I fix NJS-533 or DPY-3001?

A: The server requires Oracle Native Network Encryption or checksumming, which the Thin modes of node-oracledb and python-oracledb cannot negotiate. Turn on Thick mode with Oracle Instant Client, or have the DBA set up TLS, which Thin mode supports and which the driver documentation suggests instead, or change SQLNET.ENCRYPTION\_SERVER and SQLNET.CRYPTO\_CHECKSUM\_SERVER from REQUIRED to REQUESTED or ACCEPTED in the server's sqlnet.ora. In Jam SQL Studio 1.5.7 the error has a Use Thick mode… button that opens Settings → Oracle Client.

### Q: How do I fix NJS-116 or DPY-3015?

A: The account has only the old 10G password verifier, and Thin mode needs 11G or later. A DBA can find such accounts in DBA\_USERS.PASSWORD\_VERSIONS and have their passwords changed so the database stores 11G and 12C verifiers, as Oracle's upgrade guide describes. Thick mode signs in with the 10G verifier: in our test an Oracle 18c account connected through Instant Client 19.32 and 23.26.3. Instant Client 23 connected experimentally, outside its documented server range; use Instant Client 19 for 18c. Oracle Database 23ai no longer supports the 10G verifier.

### Q: Which Instant Client version do I need?

A: Per the node-oracledb installation guide, Instant Client 23 connects to Oracle Database 19c and later, 21 to 12.1 and later, and 19 to 11.2 and later. Use 23 for 19c and newer servers and 19 for 12.1 to 18c. On Apple silicon Macs Oracle offers only Instant Client 23, so Thick mode there reaches 19c and later. node-oracledb 7 and python-oracledb need Instant Client 19 or later for Thick mode.

### Q: Does Toad for Oracle need an Oracle client?

A: Not to connect. Quest's Toad for Oracle 2026 R1 release notes say an Oracle client is optional, but without one SQL\*Plus, Data Pump, Import/Export, SQL\*Loader, TKProf, TNSPing and Wrap are unavailable, and a client must match Toad's 32-bit or 64-bit build. Toad for Oracle on Mac includes Instant Client 19c and 23c and connects without them by default.

### Q: Does PL/SQL Developer need an Oracle client?

A: Yes. Allround Automations' system requirements say that to connect to an Oracle database, the 32-bit PL/SQL Developer needs a 32-bit Oracle Client and the 64-bit version a 64-bit Oracle Client. PL/SQL Developer runs on Windows only.

## Sources

Every vendor statement above links to its source where it appears. Error texts come from the drivers’ own message tables: [node-oracledb 7.0.1 `errors.js`](https://github.com/oracle/node-oracledb/blob/v7.0.1/lib/errors.js) and the [python-oracledb troubleshooting guide](https://python-oracledb.readthedocs.io/en/latest/user_guide/troubleshooting.html). Our measurements used node-oracledb 7.0.1 with Instant Client 19.32 and 23.26.3 against test servers, standalone and pooled, on October 23, 2026. The telemetry counts are anonymous devices, from Jam SQL Studio connection events grouped by engine and driver error code.

## Summary

If your tool runs on Oracle’s JDBC Thin driver, or on the Node.js or Python driver in Thin mode against a 12.1 or newer server with ordinary password accounts and no encryption requirement, you do not need Instant Client. You need it for PL/SQL Developer, for the command-line utilities, and for three server conditions that only Thick mode gets past in the Node.js and Python drivers: required Native Network Encryption (`NJS-533`), a 10G-only password hash (`NJS-116`) and a pre-12.1 server (`NJS-138`). Instant Client is free; pick 23 for 19c and newer servers and 19 for older ones. In Jam SQL Studio 1.5.7, the first two errors lead to a **Use Thick mode…** button; the third needs a server upgrade.

Last verified against the node-oracledb 7.0.1 and python-oracledb docs, Oracle’s Instant Client, Net Services, Security and SQL Developer docs, and the Quest, Allround Automations, DBeaver, JetBrains and Beekeeper Studio docs on 2026-10-23.

### Related

-   [Thin and Thick Mode Setup](/docs/connections/#oracle-thick-mode)
-   [Oracle on Apple Silicon, No Instant Client](/blog/2026-07-07-oracle-apple-silicon-no-instant-client/)
-   [Run Oracle Database on a Mac](/blog/2026-10-14-run-oracle-database-on-mac/)
-   [Oracle SQL Clients Compared](/alternatives/best-oracle-client/)
-   [Jam SQL Studio for Oracle](/databases/oracle/)

## Thick Mode in Jam SQL Studio 1.5.7

Jam SQL Studio connects to Oracle Database in Thin mode with nothing else to install, as long as the server’s encryption and account authentication settings are compatible. For a server that requires network encryption or an account with a 10G password hash, choose Thick in **Settings → Oracle Client** and point it at Oracle Instant Client 19 or later.

[Download Jam SQL Studio Free](/#download) [Set up Thick mode](/docs/connections/#oracle-thick-mode)

Free for personal use • No account required • Mac, Windows, Linux