# Oracle Database connection installation

**URL:** <https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [February 11, 2021, 10:22pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331 "2021-02-11T22:22:05Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 11, 2021, 10:22pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/1 "2021-02-11T22:22:05Z")

</div>

So I’m up to my neck doing a remote installation in China right now (seriously), and I want to create an Oracle DB connector. This is a fresh install so the required files aren’t on the target computer. I see the link to Oracle for the JDBC driver files download, and now I am confused.

Does it matter which version I select? ojdbc8.jar or ojdbc11.jar? The only difference seems to be that the “8” version is also certified with JDK8, while both 8 and 11 are also certified with JDK’s 11, 12, 14, 14 and 15.

I also don’t know what the actual Oracle DB I’m meant to connect to is. I just have a computer and DB name to point to. So I don’t know if the DB version matters either.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 11, 2021, 10:27pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/2 "2021-02-11T22:27:15Z")

</div>

The DB version may end up mattering:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/8/089b63eb5875fcdb319b34aedfe686abcd1db120.png)

You might just need to pick one (8 or 11) and then try it and see if it works…

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 11, 2021, 10:32pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/3 "2021-02-11T22:32:30Z")

</div>

I’m trying to find out the DB version. It actually could be a v12 DB as the hardware would have been originally spec’ed out about 5 or 6 years ago

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 11, 2021, 10:35pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/4 "2021-02-11T22:35:33Z")

</div>

I think that 8 may be the best choice in this case

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 11, 2021, 10:50pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/5 "2021-02-11T22:50:09Z")

</div>

Really stupid question. When I edit the Oracle Database connector, and supply the jar file, does Ignition move it to some special location? IE I can remove it from the place that I selected the file from?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 11, 2021, 10:52pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/6 "2021-02-11T22:52:18Z")

</div>

It goes into `$IGNITION/user-lib/jdbc`.

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 12:08am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/7 "2021-02-12T00:08:58Z")

</div>

I'm not conversant in Oracle, but I think there could be an error in the DB connector configuration page for Oracle DBs.

In the Connect URL section, the format of the string is given as this example:

> jdbc:oracle:thin:@host:port:SID

But what I found worked for me was:

> jdbc:oracle:thin:@//host:1521/SID

This is using the obc8.jar file an connecting to a v12 DB

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 12, 2021, 12:16am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/8 "2021-02-12T00:16:07Z")

</div>

Well hopefully if somebody else has an issue in the future they find this post because nothing in their docs suggest the `//` is necessary.

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 12:16am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/9 "2021-02-12T00:16:51Z")

</div>

I’m not 100% sure about the //host, but the /SID as opposed to the :SID seemed to be critical

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 12, 2021, 12:17am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/10 "2021-02-12T00:17:47Z")

</div>

This page suggests it is `host:post:sid`: [Features Specific to JDBC Thin](https://docs.oracle.com/cd/B28359_01/java.111/b31224/jdbcthin.htm)

🤷‍♂️

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 12:18am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/11 "2021-02-12T00:18:00Z")

</div>

In fact I screwed the connector up so much that I got a java error saying it was the wrong format, and teh correct format was //host:port/servicename

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 12:18am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/12 "2021-02-12T00:18:48Z")

</div>

Obvious YMMV with the Oracle docs 🤔

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 12, 2021, 12:19am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/13 "2021-02-12T00:19:37Z")

</div>

Yeah I’m not really sure. Let me see if our QA has anything to say.

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 12:25am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/14 "2021-02-12T00:25:00Z")

</div>

This page suggests that the // on the host is optional.  
[https://docs.oracle.com/database/121/TDPJD/getconn.htm#TDPJD138](https://docs.oracle.com/database/121/TDPJD/getconn.htm#TDPJD138)

But I still didn’t it to work until I had /SID

---

<div class="post-metadata">

**Author:** ![ggross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ggross/32/12668_2.png) [@ggross](https://forum.inductiveautomation.com/u/ggross)\
**Post date:** [February 12, 2021, 1:04am UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/15 "2021-02-12T01:04:54Z")

</div>

> [@peter](#):
>
> I'm not conversant in Oracle, but I think there could be an error in the DB connector configuration page for Oracle DBs.
> 
> In the Connect URL section, the format of the string is given as this example:
> 
> > jdbc:oracle:thin:@host:port:SID
> 
> But what I found worked for me was:
> 
> > jdbc:oracle:thin:@//host:1521/SID
> 
> This is using the obc8.jar file an connecting to a v12 DB

In testing against the `v18.4.0-xe` docker image with the `ojdbc8.jar` I am finding the following connection strings working in Ignition:

```auto
jdbc:oracle:thin:@localhost:1521:XE
jdbc:oracle:thin:@10.0.1.153:1521:XE #Just in case localhost is a special case
jdbc:oracle:thin:@<hostname>:1521:XE #Just to confirm my hostname works with same syntax

#Formatting you recommended
jdbc:oracle:thin:@//<hostname>:1521/XE 
jdbc:oracle:thin:@<hostname>:1521/XE

```

It could be something with the DB version, but 12 is only about 5 years old if I remember correctly and I don't think the connection strings have changed in that time. Are there any special or non-ASCII characters in either the hostname or the SID?

One thing I did find odd is this syntax faults with a port error despite Oracle claiming it should work:

```auto
jdbc:oracle:thin:@//<hostname>:1521:XE

```

Edit:

> <https://stackoverflow.com/questions/43884504/jdbc-thin-connection-string-in-oracle-uses-both-colon-and-forward-slash>

Looks like for SIDs `/` and `:` work. If you are using a service name, then only `/` will work

As I had no clue about being different types of connections for Oracle, this article looks to explain the differences:

> <https://stackoverflow.com/questions/43866/how-sid-is-different-from-service-name-in-oracle-tnsnames-ora>

---

<div class="post-metadata">

**Author:** ![peter](https://avatars.discourse-cdn.com/v4/letter/p/278dde/32.png) [@peter](https://forum.inductiveautomation.com/u/peter)\
**Post date:** [February 12, 2021, 1:38pm UTC](https://forum.inductiveautomation.com/t/oracle-database-connection-installation/43331/16 "2021-02-12T13:38:02Z")

</div>

Ahhh ,… that is it … I’m using the **service name** and not the **SID**. The service name is what we use in general to connect to our Oracle DBs with all our other (non-Ignition) processes, and in not being an Oracle person I was trying to build the connection string in the same format based on what we are currently using. I saw online how to extract the SID from an Oracle DB, but was joking with a colleague that it looks like I need to know the SID in order to connect to the DB so I can run the query to determine the SID 😆

That makes a lot more sense now. Of course I had to encounter this right in the middle of my deployment! So the Oracle DB connectors page on the GW _is_ correct, it’s just that there is more to the story (and I managed to run into a dark, not so well read corner of it).

Thank you very much for that research. It’s really informative.

OTOH How come the DB Connection page allows me to attempt to create an Oracle DB connector when the DB drivers page knows that there is no Oracle DB driver loaded? 🤦‍♂️ Knowing that would have saved me a lot of panic by allowing me to be prepared before hand. 🙄
