Push Data from Oracle to Microsoft SQL on regular basis - sql-server

Im new here and i hope i can make my question clear so that you guys can help me with some advise.
Im working with a client who wants to push its data on a regular basis from Oracle to MS SQL 2010 (effectively an ETL).
However, they've asked for a store procedure rather than ETL which was my initial idea.
i've written the store procedure ( almost there) which runs on SQL developer, asks user for input and based on the input parameters display a fact table with list of values and columns.
Now this values need to go into MS SQL Server and this is where i need help.
Bear in mind, the data in around 50-70,000 rows.
any idea of how best i should take this? I was thinking of creating a connection to MS SQL server in sql developer but i've never done that and I'm struggling there.
any advise is highly appreciated.
thanks
Mo

if stored procedure is your only option, you can create a linked server to connect to the Oracle server. The basic steps:
Quick summary:
1.Install the Oracle client
2.Install the tnsnames.ora file
3.Restart the SQL Server engine
4.Create a linked server
There are actually multiple different ways to do this, it depends on the OS, SQL Server version, Oracle version, and process architecture (32 bit vs 64 bit). Best thing to do is search the net until you find an article that matches your environment.

Related

Automated SQL Server slow query report?

I am a developer and performance tester but not a DBA. My team is working on a performance testing tool that is specific to our software. One of the features we want it to have is the ability to generate a database report immediately after the test. Our software is database agnostic. For Oracle, I can easily create a snapshot id before and after the test and programmatically create an AWR report for those snapshots, write to a file and save with other artifacts we gather. Works great.
For SQL Server, however, there is no AWR equivalent (that I know of). I know the MDW as part of the SSMS has a UI for getting things like top 10 slow SQL and things like that. But, I have not yet found a way to programmatically create and extract a SQL performance report (preferably similar to Oracle's AWR) for SQL Server.
I am even willing to create the report myself if I can find a way to extract the raw data.
Any ideas would be greatly appreciated because searching online is not getting me anywhere.
P.S. I'm trying to do this in Java, by the way, but will accept help in any language. Thanks again!
Good news! In SQL Server 2016, you can use Query Store. This is like your flight recorder blackbox.. finding long running queries and waits. Capture baseline built in to SQL Server. You can compare before and after hardware changes and/or upgrades on queries. Maybe this similar to Oracle AWR.
Only available SQL Server 2016 and up.

Passing data from sybase to Microsoft sql server

I have a requirement which needs me to write code for a data passer that would do pass data from sybase to mysql. I really don't have much experience in this field but would love to try it out. When i googled i found many articles on data migration from sybase to microsoft sql server, but that is not what i need. I need to be able to pass data from the sybase server to microsoft sql server every night for further data manipulation. There are two sites one which uses sybase and the other one uses microsoft sql, we can't do a db migration from sybase to microsoft sql as the application running at that site depends on it. Therefore the only way is to pass data from sybase to sql. So it would be very helpful if someone could shed some light on this.
Thanks in advance for whatever suggestion that you have.. :)

Compare Databases in SQL Server 2008

I had to provide a web application creatde in ASP.net and C# to my client. After some time he wants to make changes in that product. I have to update in code and database. So please provide some idea or guidance that how to compare the database using SQL Server 2008.
Or can I do this with other software?
I have googled but I got not enough satisfaction. Thanks...
We use SQL Compare by Redgate.
It's very easy to use - it will show you the differences between two databases and allow you to select which objects you want to synchronise. A synchronisation script is then generated that you can run on the target database.
Easy peasy!

Can I dump an entire Microsoft SQL Server database from Linux?

I've got a linux server that already connects happily to a MS SQL Server and I want to know if there is a way to dump the whole thing into a format I can read. I don't have access to the desktop, but I can connect using PHP and I can issue whatever commands I want. I have admin access to the SQL Server, so no problem there.
My main goal is to understand how the people before me set this thing up. I already know how to get the stored procedures as text (SELECT * FROM sys.procedures), but I was wondering if there is a way to get the whole database. I'm not very familiar with SQL Server so I don't know what important bits I might be missing.
And I don't care if the solution is in PHP or not. That's just the thing I've got working right now. Any SQL-ish command that dumps the entire database would solve my world.
To summarize:
I don't have access to the actual machine/desktop
I have admin access to the DB using PHP's mssql libs
I'm on linux
I want a text file I can look at that tells me everything in the database
My goal is not to answer a specific question - I'm looking to understand what the people before me did when they set up this database. Unknown unknowns, and all that.
Okay, hopefully I've made sense. I'm sorry if I've been a complete idiot. Be gentle. Thanks!
I would backup (http://msdn.microsoft.com/en-us/library/ms186865.aspx) the database to file and then download it, restore it on Windows and then use SQL Server tools like SQL Server Management Studio etc. to look at it.
There is plenty you can do with the metadata, but you could spend a lot of time writing queries instead of using existing off-the-shelf documentation tools.
You can use this script to create insert statements for any given table.
This stackoverflow question will tell you how to generate create table statements.
SELECT NAME FROM sys.tables will give you a list of table names.
You would probably save a LOT of time and pain by just using native SQL SErver Windows tools that work with it.

How to automatically store data from Oracle in SQL Server (according to a schedule)

Hello,
I'm new here, so sorry, if my question is too basic. However, maybe you have some advice, example, links, which could help me... I'm trying to find something helpfull for few days, but no results as for now.
I'm working in a distributed environment. I have a Oracle server hundreds of miles away and a MS SQL server close to me. I'm writing a application using Visual Web Developer 2008 Express. I need some data from Oracle. It's not worth to query the Oracle server every time i need some data from it. I'd prefer to run some Oracle queries once each night and store results in some local (SQL Server) tables. I assume, I should run queries through standard windows scheduler (Windows Server 2008). I have the basic connectivity - I can open Oracle Database from local Visual Studio.
The questions are:
How to write a query/procedure/function that would get data from Oracle and put them into a SQL Server table (possibly recreated before each query run)?
How can I run such a query from command line (or in other way run from scheduler)
What naming conventions are applicable? In VS I use something like //IP.IP.IP.IP/Name and a user with password.
Thanks for any help or advice.
Regards,
Matteo
I suggest you speak to the DBA's of the Oracle and SQL Server databases, as there may be other considerations you need to bear in mind. (Data Integrity, Security, ownership etc.)
One route you could follow would be to implement DTS (For older databases) or SSIS (for new versions of SQL Server) processes to copy the data across on the schedule you want. (This is pretty much what they were built for.)
How much data are we talking about?
If there is a small quantity that you need to transfer every day, you can write a stupid fetch and insert script in language of your choice.
You only need to search for better solutions if "sync" would take too much resources.
Thanks...
I'm the DBA for the SQL Server, which will serve only for my application. For Oracle I just want to read data and I have enough privileges and agreement with DBA's. Security, ownership and integrity are not an issue for now. I just need some technical advise how to get data from Oracle to MSSQL tables on a schedule.
I use MS SQL Server 2008 Express SP1. I'm very close to solve my problem - I have established connections and everything installed and working. I just don't know, how to run a query, which would get data from Oracle and put into MSSQL, on regular basis, without manual interaction.
I've some experience in programming, but not much in databases (except creating complex SQl queries). Therefore some example or links to detailed description would be helpful. I'm not sure about naming conventions, differences between procedures, functions and queries, command line options to run db automation procedures and so on. I'm also not sure, about which mechanisms or technologies are available in MS SQL Server 2008 Express edition.

Resources