🔒 All tools run entirely in your browser. No data leaves your device.

TNS Connection String

Parse tnsnames.ora entries and generate EZCONNECT / JDBC URLs. Build new TNS entries from form fields. Browser-only.

Parsed fields

Alias
MYDB
Service name
orclpdb1
Server
DEDICATED
Load balance
on

Addresses

  • TCP db01.example.com:1521
  • TCP db02.example.com:1521

Convert

EZCONNECT
db01.example.com:1521/orclpdb1
JDBC thin
jdbc:oracle:thin:@//db01.example.com:1521,db02.example.com:1521/orclpdb1

About this tool

Oracle connection strings come in three common forms. TNS entries (in tnsnames.ora) are the classical approach — a named alias referring to a (DESCRIPTION = (ADDRESS = …)(CONNECT_DATA = …)) block. EZCONNECT is Oracle’s URL-style shortcut — host:port/service_name. JDBC thin is how Java applications address the same database — jdbc:oracle:thin:@//host:port/service_name.

This tool parses an existing TNS entry and emits EZCONNECT and JDBC equivalents, or builds a new TNS entry from form fields. For RAC entries with multiple ADDRESS nodes, every host is preserved; the JDBC output concatenates them with commas so the thin driver can try each one.

A quick reminder on the service-name vs SID distinction: services are post-9i and the default for everything modern; SIDs still work but are legacy and use a different separator in JDBC. If you’re writing new code, use service names.

Frequently asked questions

What is EZCONNECT?

Easy Connect is Oracle’s short-form connection syntax: host:port/service_name. It bypasses tnsnames.ora entirely and works with any Oracle client that understands it (SQL*Plus, SQLcl, SQL Developer, most drivers). Handy for one-off connections or CI environments where you don’t want to ship a tnsnames file.

Does parsing handle RAC / multi-ADDRESS entries?

Yes. Every ADDRESS node under the DESCRIPTION is extracted, so a RAC entry with two or more nodes is parsed into a list. The JDBC output concatenates hosts with commas in the thin-driver URL when a SERVICE_NAME is present.

Why does the JDBC output use // for service_name and : for SID?

Oracle’s thin JDBC driver uses different separators for the two identifier types. `@//host:port/service_name` selects a service; `@host:port:SID` selects a SID. Using the wrong syntax produces an "ORA-12505: TNS:listener does not currently know of SID" error.

Is the TNS entry sent to your servers?

No. Parsing and generation happen entirely in your browser. Passwords for the connection aren’t part of TNS anyway — they’re supplied at connect time.

My TNS entry has LDAP / ORAMTS / DNS features. Will parsing fail?

The parser covers the most common form (DESCRIPTION → ADDRESS_LIST → ADDRESS → CONNECT_DATA). Less common options (LDAP lookups, connection-time failover configuration, SSL cipher suites) are tolerated as unknown nodes and ignored, not rejected.