Oracle

This article describes how to connect Tableau to an Oracle database and set up the data source.

Note: Beginning with Tableau 2020.2, if you want to publish a data source or workbook using net_service_names to Tableau Server, be sure to review the changes described in the Knowledge Base article, Setting an Oracle Connection to Use TNSNames.ora or LDAP.ora.

Before you begin

Before you begin, gather this connection information:

  • Name of the server that hosts the database you want to connect to and the Oracle service name and port, or the TNS name

  • Authentication method: Integrated Authentication or user name and password

  • Are you connecting to an SSL server? You must configure the Oracle client before you can use SSL with Tableau.

    If you are using version 2020.2 or later, see Require SSL for Oracle JDBC Connections.

  • (Optional) Initial SQL statement to run every time Tableau connects

Driver required

This connector requires a driver to talk to the database. You might already have the required driver installed on your computer. If the driver is not installed on your computer, Tableau displays a message in the connection dialog box with a link to the Driver Download(Link opens in a new window) page where you can find driver links and installation instructions.

JDBC driver versus OCI driver

Beginning with version 2020.2, Tableau recommends that you use the JDBC driver (available from the Driver Download(Link opens in a new window) page) with this connector. The newer JDBC driver resolves some limitations found with the OCI driver, such as no spatial support or Kerberos delegation on Linux.

Note: If you experience issues using the JDBC driver for this connector, an OCI driver is still available and can be used instead. See the Driver Download(Link opens in a new window) page for instructions.

Make the connection and set up the data source

  1. Start Tableau and under Connect, select Oracle. For a complete list of data connections, select More under To a Server. Then do the following:

    1. Enter the server name or the TNS name.

      • If you enter the server name, you must enter the Oracle service name and port number.

        Note: To find the correct service name, open the tnsnames.ora file (in the ORACLE_HOME/network/admin directory by default) and search for the net_service_name section. Use the value listed for service_name.

      • If you enter the TNS name, do not enter the Oracle service name and port number.

    2. Select how you want to sign in to the server. Specify whether to use Integrated Authentication or a specific user name and password.

      Select the Require SSL check box when connecting to an SSL server.

    3. (Optional) Select Initial SQL to specify a SQL command to run at the beginning of every connection, such as when you open the workbook, refresh an extract, sign in to Tableau Server, or publish to Tableau Server. For more information, see Run Initial SQL.

    4. Select Sign In.

      If Tableau can't make the connection, verify that your credentials are correct. If you still can't connect, your computer is having trouble locating the server. Contact your network administrator or database administrator.

  2. On the data source page, do the following:

    1. (Optional) Select the default data source name at the top of the page, and then enter a unique data source name for use in Tableau. For example, use a data source naming convention that helps other users of the data source figure out which data source to connect to.

    2. From the Schema drop-down list, select the search icon or enter the schema name in the text box and select the search icon, and then select the schema. Note: Search is case-sensitive.

    3. Under Table, select the search icon or enter the table name and select the search icon, and then select the table.

      Note: Search is case-sensitive.

      Tableau Desktop also supports connecting to Oracle table functions, which appear under Stored Procedures in the left pane of the Data Source page.

      Starting with Tableau version 2020.2, you can connect to spatial columns. For more information, see Connect to Spatial Data in a Database(Link opens in a new window).

    4. Drag a table to the canvas, and then select the sheet tab to start your analysis.

      Use custom SQL to connect to a specific query rather than the entire data source. For more information, see Connect to a Custom SQL Query.

Sign in on a Mac

If you use Tableau Desktop on a Mac, when you enter the server name to connect, use a fully qualified domain name, such as mydb.test.ourdomain.lan, instead of a relative domain name, such as mydb or mydb.test.

Alternatively, you can add the domain to the list of Search Domains for the Mac computer so that when you connect, you need to provide only the server name. To update the list of Search Domains, go to System Preferences > Network > Advanced, and then open the DNS tab.

Use net services definitions in Tableau

To use your net services definitions in Tableau, you must set either TNS_ADMIN or ORACLE_HOME as an environment variable. To set TNS_ADMIN as the environment variable use the full path of the directory that contains the tnsnames.ora file. To set ORACLE_HOME as an environment variable use the path to the main Oracle directory.

Migrate workbook from Oracle OCI connector to Oracle JDBC connector

If you create a workbook using the Oracle OCI connector with SSL and later try to open it using the JDBC-based Oracle connector, Tableau won’t be able to find the corresponding SSL certificate.

To migrate a workbook

  1. Convert the certificate from PKCS12 format (used by Oracle Wallet) to JKS format. Use this command:

    keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass PASSWORD -destalias ALIAS_NAME

  2. Modify oracle.properties to customize this connection as follows:

    javax.net.ssl.trustStore = <new jks file path>
    javax.net.ssl.trustStoreType = JKS
    javax.net.ssl.trustStorePassword = <new jks file password>

 

See also

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!