Oracle Database Gateway for Salesforce enables real-time access to data that runs your business

Our new ConnectXE for ODBC Salesforce driver is the new standard for accessing data in a cloud in real time.

Gartner is talking about it.

Salesforce is talking about it.

And even Oracle discovered that real-time integration was a challenge before the ConnectXE for ODBC Salesforce driver release.

So without further adieu, welcome to the new Oracle Database Gateway for Salesforce using DG4ODBC.  Getting Oracle and Salesforce to talk reminds me of the 101N from San Jose to San Francisco: you see Salesforce Offices on your left and Oracle Corporate on your right.  And the new ConnectXE for ODBC Salesforce driver is the “mutual friend” that gets these Silicon Valley neighbors talking to each other within your organization.

The preliminary steps are:

1. Assume Database Gateway for ODBC is installed (article is for Linux).

2. Download and test-connect the ConnectXE for ODBC Salesforce driver on Linux

3. Configure Database Gateway for ODBC with Salesforce using our white paper.

In the odbc.ini configuration file, configure the data source with ConfigOptions=MapSystemColumnNames, LogonDomain and SecurityToken connection properties.

Description=DataDirect 7.0 Salesforce

4. Create the database link as follows: SQL> create database link sfdc connect to “sumit.sarkar” identified by “xxxxxx” using ‘dg4odbc’;

(Note: Username does not include domain and password does not include security token. Both of these are specified in LogonDomain and SecurityToken in the data source from previous step)

Oracle Database Gateway for Salesforce

Once you test-connect, you will see that Salesforce looks like any other ODBC data source for your Gateway.  Download the Salesforce to Oracle Gateway today, and show your colleagues that you personally figured out how to get high performance real time access to the Salesforce data that run your business; and integrated it into your Oracle shop.

This is cutting edge data access technology that will get a lot of attention, and you deserve all the credit!

Sumit Sarkar

Sumit Sarkar

Senior Principal Systems Engineer, Progress DataDirect at Progress
Data Access Evangelist, Speaker and World's leading consultant on open data standards for cloud data. Sumit Sarkar has been working in the data connectivity field for 10 years. His interests include performance tuning of the data access layer for which he has developed a patent pending technology for its analysis; business intelligence and data warehousing for SaaS platforms; and data connectivity for aPaaS environments - with a focus on standards such as ODBC, JDBC, ADO.NET, and ODATA. He is an IBM Certified Consultant for IBM Cognos Business Intelligence and TDWI member. He has presented sessions on data connectivity at various conferences including IUC34, IUC35, Progress Revolution, Oracle User's Group, Collaborate 12, Dreamforce 2012, Cloud Computing Expo 2012, PRGS13 Exchange, Dreamforce 2013, Oracle OpenWorld 14, PRGS14, DF14 Presented related webinars in collaboration with IOUG, DZone, Progress DataDirect and Progress Communities.
Sumit Sarkar


Data Access Evangelist, Speaker and World's leading consultant on open data standards for Cloud Data. TDWI, Pescatarian, Simcity Celeb - I tweet my own tweets.
@ASUG_Ontario @ASUG_BI Thank you! It does sound Canadien - 2 hours ago
Sumit Sarkar


  1. Ok i get this! This is cool.

    But, What would happen if say i write in oracle something like this

    for i in 1..1000000 loop
    Update Account@sfdc set name=’scott’
    end loop;

    • Thanks for the note. Can you share more specifically what you are trying to illustrate in fhe code snippet? In the meantime, here is how the driver handles updates:

      The driver will parse the UPDATE statement in order to identify the object and fields being updated.  The driver will issue a SOQL query utilizing the WHERE clause of the UPDATE statement if it exists to identify the objects that need to be updated.  The driver will then issue web service calls to update the objects affected by the UPDATE statement.  This web service call can update up to 200 objects at a time.  Depending upon the setting for the BulkLoadThreshold, the driver may utilize the bulk API to execute the UPDATE if the number of objects being updated exceeds the threshold.

      • Hi Sumit

        I just wanted to see what will happen if I push that sort of load to salesforce. I just wanted to see how would the datadirect driver ‘translator’ in the middle will report back to me the error of hitting governor limits and other error types that I might get from Salesforce. That’s all.

        Now I understand better, you use a webservice call to pass the UPDATE on the http request. Well just wanted to see how would this translate into SQL*Plus you have in your example.

        That is the purpose of the snipet.

        This is great!

        Looking forward to install the ODBC Unix drivers and get the Oracle SQL*Plus talk to Salesforce over a DB_LINK and do a bit of PL/SQL and see how it all works. Nice!

        All the best


  2. Hi!
    Could it be possible to access Salesforce fields of Long Text Area(>40000) data types across DB link using your driver?

    • @Elena – the ODBC Salesforce connection imposes no limitations on this data type and maps Long Text Area to ODBC data type SQL_WLONGVARCHAR. Are you running into issues through a Gateway connection?

      • Yes. We tried a driver from another company and don’t ‘see’ such fields. The access from Oracle to Salesforce is done across DB link but Oracle cannot use LOB locators selected from remote tables.
        How does DataDirect establish communication between two databases?



  1. Salesforce external objects to on-premise Oracle, SQL Server #DF14 - […] to say that we make Salesforce look like Oracle or SQL Server.  For example, when you connect via Oracle Database …

Submit a Comment

Your email address will not be published. Required fields are marked *