开发者

What are ways to transfer tables from Oracle to SQL Server

开发者 https://www.devze.com 2023-04-06 18:41 出处:网络
I\'ve been searching the internet for this question: What are ways to transfer data and tables on a daily basis from an Oracle\'s Hyperion to SQL Server 2000?

I've been searching the internet for this question:

What are ways to transfer data and tables on a daily basis from an Oracle's Hyperion to SQL Server 2000?

I am an intern at a company and trying to figure out possible ways t开发者_Go百科o do this. Any help or point in the right direction is greatly appreciated


This is going to depend a lot on specifics. Here are just a few possible solutions:

DTS

DTS is packaged with SQL 2000 and is made for this kind of a task. If written correctly, your DTS package can have good error-handling and be rerunnable/reusable.

SSIS

SSIS is actually packaged with SQL 2005 and above, but you can connect it to other databases. It's basically a better version of DTS. (technically it's radically different than DTS, but has a lot of the same functionality)

Linked Servers

From SQL 2000 you should be able to connect directly to your Oracle database as a linked server. In the pros column this kind of direct access can be easy to work with if you don't have any other technical skills such as DTS or SSIS, but it can be complex to get the initial set-up right and there may be security concerns/issues.

Build Your Own

Depending on what other technologies you use you can build your own application to do the ETL (Extract/Transform/Load, which is what you're doing). This could be in .NET, Java, etc. In the pros column you can use something with which you're familiar but there's a big downside here in that most of the low level type of work is already out there in tools like DTS/SSIS, so why reinvent the wheel?

BCP

You can simply extract the data from Oracle as .csv files (or some other format) and then import them back in using SQL Server's Bulk Copy Process. This can be fast, but there aren't many bells and whistles to go with this. If this is a one-time thing with just a few tables though then this is probably the easiest and fastest way to do it.

Third Party Applications

There are a slew of ETL applications already written out there (Data Import, Data Slave, etc.). They will usually provide wizards and one-click solutions (maybe a few more than one click), but they are also going to cost a bit of extra money.


EDIT:

Given your latest comment, I would probably go with a DTS package that's scheduled in SQL Agent to run daily. You can add in error-handling and have the system email/text/call someone if there's ever an issue (or do positive case reporting - ie. send a message when it's successful so that someone knows that there's a problem if they don't get a message each day.


In our company we use ADO.Net for the same task. We created a source to Oracle , taking all data and then creating it in SQL server


You could write DTS packages to copy the data, and schedule them to run within Sql Server Agent.

See DTS Overview for information on DTS packages.

Here's a tutorial on creating a DTS package: Creating DTS Packages With SQL Server 2000


Oracle Hyperion is a suite of products, largely unrelated to Oracle's database product. I expect you are referring to a product such as Hyperion Financial Management or Hyperion Strategic Finance. These products have APIs that can be consumed using COM Interop or web services. The data can be extracted from the internal multidimensional database by analyzing the database metadata, creating dimension trees, and then using the information to create selections, that represent subcubes within the database; allowing you to get or set cell data. I don't know what your level of knowledge of multidimensional databases is, but unless it is substantial you may find the task pretty hard. You also need to get a handle on the particular product API.

My company specializes in these kinds of activities, and we have components for this kind of thing. Drop me a line on my blog if you need further advice.

danielvaughan.org

Cheers, Daniel


I don't know anything about Hyperion, but SQL Server 2000 is very old and may not have a driver to be able to pull data from Hyperion if the version of that is newer than the year 2000. You may need to look to see if there is a way to push the data from Hyperion rather than pull it into SQL Server 2000. One way i have done this is the past is to create pipe delimited text file from the data base that orginally has the data and palce it in a processing directory. I do know that DTS will process a pipe-delimited text file. So if you can't find a driver to process this data directly, consider if you can push it out to file and then process. You wil have to schedule a time gap between the job on Hyperion that creates the file and the DTS package job. But if you are only doing it once a day, that's prbably not a problme.

0

精彩评论

暂无评论...
验证码 换一张
取 消