# Oracle Using Java and Python from Delta

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-%C2%A0-%C2%A0" role="main"><div class="vector-body"><div class="mw-body-content mw-content-ltr" dir="ltr" lang="en-CA">  
</div></div></div>### **Connecting to Oracle server from Delta using jdbc**

#### <span class="mw-headline" id="bkmrk-jdbc-connection-stri-1">JDBC Connection string</span>

In the connection strings below, replace "userid" with your UWinID, and "password" with your campus password.

Code to test your connection:

```
import java.sql.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.OracleDataSource;

class JDBCVersion
{
  public static void main (String args[]) throws SQLException
  {
    OracleDataSource ods = new OracleDataSource();
    ods.setURL("jdbc:oracle:thin:userid/password@oracle.cs.uwindsor.ca:1521:cs01");
    Connection conn = ods.getConnection();

    // Create Oracle DatabaseMetaData object
    DatabaseMetaData meta = conn.getMetaData();

    // gets driver info:
    System.out.println("JDBC driver version is " + meta.getDriverVersion());
  }
}
```

The classpath for the Oracle JDBC archive will vary depending on the operating system and which version of the Oracle client you installed. The classpath in the following commands are those required to compile and run from a terminal on cs.uwindsor.ca.

```
javac -classpath /usr/lib/oracle/12.1/client64/lib/ojdbc7.jar  JDBCVersion.java 
java -classpath /usr/lib/oracle/12.1/client64/lib/ojdbc7.jar:.  JDBCVersion
```

### **Connecting to Oracle server from Delta using Python**

- Create a Python Virtual Environment 
    - mkdir oraclepy
    - cd oraclepy/
    - python -m venv ./venv
- Pip install cx\_oracle 
    - pip install cx\_oracle --upgrade[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/image.png)
- Use the following code db\_config.py ```python
    import cx_Oracle
    import sys
    import os
    import getpass
    
    user = os.getlogin()
    
    dsn = os.environ.get("PYTHON_CONNECT_STRING", "oracle.cs.uwindsor.ca/cs01")
    
    pw = os.environ.get("PYTHON_PASSWORD")
    if pw is None:
        pw = getpass.getpass("Enter password for %s: " % user)
    
    
    ```
- Using the following code, you connect to the database ```python
    import cx_Oracle
    import db_config
    
    con = cx_Oracle.connect(db_config.user, db_config.pw, db_config.dsn)
    print("Database version:", con.version)
    
    ```
- Run the Code: before running the code, set the environment variables using export [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/scaled-1680-/ZsNimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/ZsNimage.png)
- Check the following URL for more information: [Tutorial cx\_Oracle](https://github.com/oracle/python-cx_Oracle/tree/main/samples/tutorial)
- You can embed the export variables in shell script and call your Python code from the same script ```bash
    export ORACLE_HOME=/opt/oracle/instantclient_21_8
    export LD_LIBRARY_PATH=/opt/oracle/instantclient_21_8:$PATH
    export TNS_ADMIN=/opt/oracle/instantclient_21_8/network/admin/
    ```
- To exit the Python virtual env, type **deactivate** and press enter. you will be back at the Linux prompt

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-you-will-also-need-t" role="main"><div class="vector-body" id="bkmrk-you-will-also-need-t-1"><div class="mw-body-content mw-content-ltr" dir="ltr" id="bkmrk-you-will-also-need-t-2" lang="en-CA"><div class="mw-parser-output">  
</div></div></div></div><div id="bkmrk-"><div id="bkmrk--1"><div id="bkmrk--2"><div class="vector-search-box-vue  vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box" id="bkmrk--3" role="search"><div><form action="/mediawiki/index.php" class="vector-search-box-form" id="bkmrk--4"><div class="vector-search-box-inner" data-search-loc="header-navigation" id="bkmrk--5"></div></form></div></div></div></div></div><div id="bkmrk--7"><div id="bkmrk--8" role="banner"></div></div>