Insert rows into a SQL Server table from Oracle - sql-server

I have an Oracle 10G database running on a Unix environmnent and have a requirement to write a PL/SQL job that will be running on the Oracle database that will populate tables in another database which is a microsoft SQL Server database running on a Windows platform.
Having looked around, it looks like this is possible via database links. Has anyone got any more information on this? For example how reliable is the connection and are there any disadvantages in having such a setup?
Chances are that i would have limited access to the SQL Server database. Is the above possible without having to make any changes to the SQL server database? (Assuming the DBA on the SQL server has configured the database to be accessed from other databases)
Thanks

Use the Oracle feature DG4ODBC, it is as reliable as any normal DBLINK setup, to the SQL Server side it will look like any other sort of client connection. You only need to do anything more elaborate if you are planning to do distributed transactions between Oracle and SQL Server (i.e. 2 Phase Commit). You will probably also want UnixODBC and FreeTDS.

Related

what is the best way to migrate data from SQL Server to Oracle database

I have two remote databases, Oracle 19c and SQL Server 19. In my redhat linux, I have to read SQL Server table and write it to Oracle.
I wrote a Python code to read data from SQL Server and insert it to Oracle database. But, I think it is so slow. Since, the table has about 16 million records.
I search a lot and see this post:
https://stackoverflow.com/a/66550879/6640504
It said that Oracle Transparent Gateway makes it possible to run a procedure for migrating data from extra database to Oracle in little time.
I can access to Oracle database using terminal and don't have any graphical accesses.
Would you please guide me if Oracle Transparent Gateway is the best way to migrate data from SQL Server to Oracle database, how to install Oracle Transparent Gateway and use it? If not, what is the best way?
Any help is really appreciated.
One solution would be to work from SQL Developer.
You can download SQL Developer for free from https://www.oracle.com/tools/downloads/sqldev-downloads.html
SQL Developer provides a "migration workbench" that supports SQL Server.
The data migration can be done online or offline.
Online causes the table data to be moved by SQL Developer when you have completed the necessary information in the wizard; Offline causes SQL Developer to generate scripts after you have completed the necessary information in the wizard, and you must later run those scripts if you want to move the data. (Online moves are convenient for moving small data sets; offline moves are useful for moving large volumes of data.)

What are my options for accessing an SQL Server database through MS Access front-end while offline

I'm currently working on a project proposal which would require moving multiple Access databases into a new MS SQL Server database. The idea is to keep the front end program as MS Access so that the users are familiar with the process of inputting data and creating reports.
However, things get complicated in that the internet in the areas where the survey will be collected has poor connectivity and will be out from time to time. I had thought of a few ways of solving this issue but all of them are cumbersome:
1) Having a PC with a router that stores the SQL Server database in offline mode and the data entry PCs connect to the PC with the offline database through the router. The PC with the SQL Server database can then backup the db on the server when it has an internet connection.
2) Adding the data to MS Access databases that can then be merged with the SQL Server at specified increments (this would probably cause some issues).
We've done option 1 before for similar projects but never for connecting to an SQL Server database in offline mode. However, it seems feasible.
My question is: Does anyone know of a way of using Access as a front end application for SQL Server and being able to update data during times without internet connectivity? The SQL Server database would automatically assign primary keys, so, duplicate unique values shouldn't be an issue while syncing the data.
Thanks for your help. I've been having a hard time finding an answer on Google and syncing to databases is complicated at the best of times. I'm really just looking for a starting point to see if there are easier ways of accomplishing this.
I would run a the free editon of SQL express on all laptops. So the Access database would be the front end to the local edition of SQL express. SQL express can be a subscriber to the "main" sql database. You thus use SQL replication to sync those local editions of SQL server to the master server. Of course the main SQL server can't be the free edition of SQL server. So to publish the database for replication, you can't use the free edition, but those free editions can certainly be used as subscribers.
This approach would eliminate the need to build or write special software for the Access application. You thus do a traditional migration of the access back end (data tables) to sql server, and then simply run the Access application local with sql express installed on each laptop. You then fire off a sync to the main edition of sql server when such laptops are back at the office.
The other possible would be to adopt and use the net sync framework. This would also allow sync, and would eliminate the need to run sql expess on each machine. I think the least amount of effort is to sync the local editions of sql express with the main editon of SQL server running at the office (but that office edition of SQL server can't be a free edition).

Compare SQL Server Database Schema with Oracle Database Schema

in my development environment we support the application both on MSSQL Server as well as Oracle. The database schema of both of these RDBMS are same.
while development we found that the developer made a mistake and forgot to change the oracle database for the last 1 yr. therfore the oracle script is quite behind in term of schema from SQL Server schema script.
now the question is how i can compare the two RDBMS systems to find the difference and make the oracle script updated
If there are no track log from which it's possible to find and reproduce all changes applied to SQL Server since first detected inconsistency with Oracle version, or that changes was applied, but only partially, you really need to compare objects presented in both databases.
In this case setup a link between databases on any side and use system dictionary views to compare table structures and other objects to find differences and, possible, to generate script for Oracle scheme rollup.
If you want to act from MS SQL Server side:
Install and configure Oracle Instant Client
Install Oracle ODAC
Follow Microsoft recomendations (64-bit version)
Connect as any user with dba role (or use same Oracle schema where object resides) to Oracle from MS SQL database
If you want to act from Oracle Server side:
Install and configure Oracle Database Gateway for SQL Server.
Create database link to MS SQL Server.
After successful configuration you may join Information schema views on SQL Server side with Data dictionary views on Oracle side to find differences.
Of course there are many troubles at this way like different data types, but it gives a chance to automate at least part of work.

Mirroring of database on same server for tersting

Is possible to mirror to database of same sql server . My server instance is SQLSERVER having 2 database with same structure but with differ name . i want db1 to sync with db2, so if i want user to test application i can do it.
Even though I would not recommend having them on the same sql server (performance/security wise), just have a look here: http://technet.microsoft.com/en-us/library/dd207006.aspx
(since you said SQLSERVER, I guess you meant mssql)

I want to install SQL Server database in my system and add this database to Informatica which has oracle already

I have Informatica 9 and an Oracle database in my system. Now I want to install a SQL Server database in my system and add this database to Informatica.
Is that possible ?
Purpose: I need to migrate some of the tables from SQL Server to Oracle database using informatica.
Could anyone let me know, after installing SQL Server, how can I add this SQL Server database to informatica for creating mapping?
Thanks
Sreedhar
Installing the SQL server software on your system and getting informatica to talk to that are entirely different things.
You can for sure install SQL server on your Informatica server system, till the time you are dealing with some varient of Windows. Informatica can be installed on *nix flavours but not SQL server. If your informatica server is not on windows varients, you need to have a separate windows box for sql server installation.
Getting informatica to talk to sql server is going to be dependent upon the platform keys that you have for Informatica. Having the driver and everything is fine, but finally informatica allows interaction to OS/databases based on the platform keys, these keys are normally purchased and have therefore price attached to every additional environemnt/database you want to access.
hth

Resources