Hi everyone, Andy from Easysoft Limited here, what I want to show you today is how to get data from SQL Server into Oracle.
Now for this we will be accessing SQL Server 2014 from Oracle 12 and getting data across.
This could be quite easily be any SQL Server version from 2008 and any Oracle version from 11.2, the configuration and process is the same. We can obviously get access to data on SQL Server prior to 2008 and Oracle prior to version 11.2 but it will need a different configuration to what I am going to show you today
The plan is also to add more data to the SQL Server table and show this new data back in Oracle.
To start off you'll need access to ensure that you have access to your SQL Server and Oracle databases.
You'll also need the Easysoft SQL Server ODBC Driver available from www.easysoft.com; just download it, install it and request the free 14 day trial licence.
Before we start we need to make some changes to the standard Easysoft config files.
Here I have changed Mars Connection to Yes. It must be set to "Yes" if you are connecting to SQL Server 2005 or newer.
Easysoft supports all SQL data types from the version of SQL Server from version 7.
Oracle supports data types that are common to most ODBC Drivers, but not some of the SQL Server ones.
If you intend to access VARCHAR(MAX) for example, then there are some additional settings that need to be set up.
Now as I would like to show you VARCHAR(MAX) data moving from SQL Server to Oracle, I have made the relevant change.
As you can see, VarMaxAsLong says "Yes"
We now need to create a link from Oracles Database Gateway (DG4ODBC) to the ODBC datasource that we already have, this is done in an init(sid) oracle file; let's have a look at our file.
Please note that HS_NLS_NCHAR must be set to UCS2
Oracle assume that most database vendors use UTF-8 for wide characters, however Easysoft, like almost all ODBC Driver vendors (including Oracles own ODBC Driver) uses UCS2 for wide characters.
So that's the link between DG4ODBC and the datasource setup correctly.
Next we need to set up the Listener entry
The Oracle Listener waits for incoming requests from the Oracle database. For the Oracle Listener to listen for requests, information about DG4ODBC must be added to the Oracle Listener configuration file, listener.ora
The PROGRAM=dg4odbc tells the Listener that we are wanting to use the Oracle database gateway to communicate with ODBC.
The ENVS=LD_LIBRARY_PATH tells Oracle what library to load
Now that's all set up and OK we need to tell Oracle which server to attach the listener entry to. This is done in tnsnames.ora, and he is the file that we ensured was set up earlier.
The Oracle Listener now needs to be restarted.
OK, that's now started the Listener up again.
So we have ensured that all the configuration files are set up correctly.
The Listener and tnsnames.ora both set up OK.
The final step is to create a link from the Oracle database to the "tnsnames.ora" entry.
CREATE PUBLIC DATABASE LINK ODBC CONNECT TO "test" IDENTIFIED BY "test" USING 'sqlsrv_ptr';
Right, that's all done.
Let's access the data in SQL Server now.
select * from [email protected]
Where 'demo' is the name of the SQL Server table and 'odbc' is the public database link name.
OK, there we have the data. So to recap, I'm in Oracle and we have managed to read the data from SQL Server.
Let's just add an additional row in that SQL Server table and retrieve the new data in Oracle.
/usr/local/easysoft/unixODBC/bin/isql.sh -v sqlsrv
insert into demo values (2,'Easysoft')
select * from demo
select * from [email protected]
And there is the new data.
Easysoft Limited can help you with your data access ... for our full range of ODBC and JDBC Drivers, Bridges and Gateways visit easysoft.com
Be sure to let us know if you have any comments or questions.
Until next time, thanks again and we'll see you again soon.