2010-06-29 86 views
5

Chúng tôi cần di chuyển cơ sở dữ liệu của chúng tôi từ MSSQL sang Oracle và chúng tôi có hơn 100 thủ tục được lưu trữ được viết bằng PL/SQL TSQL. Tôi biết nó là một shot dài, nhưng có ai từng sử dụng thành công một công cụ di chuyển tự động để thực hiện công việc không? Tôi đã thấy một số công cụ trên web, nhưng tôi không có cách nào để đánh giá khả năng xử lý nhiều mã khác nhau của họ. Bất kỳ kinh nghiệm cá nhân nào trong vấn đề này sẽ hữu ích.Công cụ di chuyển từ TSQL sang PL/SQL?

+0

bản sao có thể có của [Microsoft SQL Server để di chuyển dữ liệu Oracle (chuyển đổi) (RDBMS khác ok, quá)] (http://stackoverflow.com/questions/1484814/microsoft-sql-server-to-oracle-data- di chuyển-chuyển đổi-khác-rdbms-ok-quá) – APC

+1

"Chúng tôi cần phải di chuyển cơ sở dữ liệu của chúng tôi từ MSSQL đến Oracle và chúng tôi có hơn 100 thủ tục được lưu trữ được viết bằng PL/SQL." Điều này không có ý nghĩa. Nếu bạn đang chuyển đổi từ MSSQL sang Oracle, thì chắc chắn các thủ tục được lưu trữ của bạn được viết bằng T-SQL, và bạn muốn chúng được chuyển đổi sang PL/SQL ...? – ObiWanKenobi

+0

@ObiWan, cảm ơn, đã khắc phục điều đó. – gooli

Trả lời

4
  1. SwisSQL - SQL Server to Oracle Migration Tool 3.5;
  2. tsql to pl sql;
  3. Convert SQL Server T-SQL to Oracle PL/SQL (syntax and equivalences);

Tuy nhiên, có một số tối ưu hóa có thể được yêu cầu thực hiện sau khi quá trình chuyển đổi hoàn tất. Vì vậy, bạn nên xem xét sửa đổi chuyển đổi sau khi nó được thực hiện.

EDIT # 1

Một công cụ thú vị sẽ là:

Spectral Core's Full Convert Enterprise

Bạn có kinh nghiệm với ai trong số họ?

Thật không may là không. Tôi vừa thực hiện chuyển đổi cho SQL Server bằng SSIS.

EDIT # 2

Có vẻ là một công cụ thích hợp hơn trực tiếp từ Oracle rằng tôi sẽ tốt hơn niềm tin.

Trực tiếp từ Oracle: Migrating from Microsoft SQL Server to Oracle

Và cốt lõi các tính năng:

SQL nghệ Migration cho nhà phát triển hỗ trợ các tính năng cốt lõi sau khi di chuyển từ Microsoft SQL Server:

  • Tự động chuyển đổi các kiểu dữ liệu cột thành các kiểu dữ liệu Oracle thích hợp.
  • Tự động giải quyết xung đột tên đối tượng, chẳng hạn như xung đột với các từ dành riêng cho Oracle.
  • Phân tích cú pháp và chuyển đổi các thủ tục, hàm, trình kích hoạt và các khung nhìn đã lưu trữ thành Oracle PL/SQL.
  • Cung cấp khả năng tùy chỉnh nâng cao như khả năng thay đổi ánh xạ kiểu dữ liệu, xóa và đổi tên đối tượng.
  • Tạo báo cáo về trạng thái di chuyển.
  • Tạo tập lệnh DDL để tạo cơ sở dữ liệu Oracle đích.
  • Tạo tập lệnh cho chuyển động dữ liệu
  • Hiển thị thông báo, thông báo lỗi và cảnh báo về di chuyển trong cửa sổ tiến trình.

    1. Vì vậy, tôi khuyên bạn nên tìm hiểu mọi thứ chi tiết không được đề cập ở trên;
    2. Xem xét chi tiết thông tin do công cụ cung cấp;
    3. Kiểm tra các thủ tục được lưu trữ của bạn sau khi chúng được chuyển đổi.

Nếu bạn có một cái nhìn như những gì SQL Server không cung cấp so với Oracle, đây là những điểm mà tôi sẽ xem xét đầu tiên. Để biết những khác biệt này, hãy thực hiện theo liên kết 3. Convert SQL Server T-SQL to Oracle PL/SQL (syntax and equivalences) ở trên.

+0

Bạn có kinh nghiệm với bất kỳ người trong số họ? Họ đến làm việc như thế nào? Bạn có gặp phải bất kỳ lỗi nào mà tôi nên tìm ra không? – gooli

+0

Vui lòng xem các chỉnh sửa của tôi để có câu trả lời. Tuy nhiên, 100 thủ tục được lưu trữ không phải là rất nhiều công việc để làm bằng tay, nếu bạn cảm thấy thoải mái với Oracle PL/SQL. –

+0

Bản dịch không phải là những gì tôi đang lo lắng, đó là thử thách để chế nhạo tôi. Nhưng tôi đoán không có cách nào để tránh điều đó. Có lẽ chúng ta sẽ viết một bộ kiểm thử đơn vị trong Java để có thể chạy với cả Oracle và SQL Server và hoạt động như một công cụ hồi quy. Cảm ơn câu trả lời và nghiên cứu chuyên sâu của bạn. – gooli

1

Trong quá khứ tôi đã cố gắng làm điều ngược lại, nhưng tôi e rằng không có cách nào đáng tin cậy 100%. Một số tính năng là duy nhất cho mỗi RDBMS và không thể được nhân rộng bởi một công cụ (ví dụ các trường IDENTITY trong SQL Server vs Trình tự trong Oracle). Xem xét, cuối cùng, tôi đã phải xem xét từng thủ tục lưu trữ để đảm bảo nó làm những gì nó phải làm, tôi nhận ra nó là tốt hơn để lên kế hoạch một cổng thủ công và tìm hiểu một số PL/SQL trong khi làm việc đó.

5

Tôi khuyên bạn nên làm điều đó bằng tay. Đầu tiên, đối với tôi, cá nhân, 100 không có vẻ quá tệ. Tôi muốn đặt cược rằng sự phát triển của bạn theo các mẫu - sử dụng getutcdate() thay vì current_timestamp, vv Điều này có nghĩa, có thể có một vài vấn đề rất lặp đi lặp lại mà bạn và nhóm của bạn sẽ có thể học hỏi. Với tôi, điều này sẽ giữ lợi ích bổ sung của việc dạy cho bạn các sắc thái/mở rộng PL/SQL, mà bạn có thể sẽ cần phải học để duy trì/mở rộng hệ thống mới.

Chúc may mắn!

+0

Làm điều đó bằng tay là tùy chọn mặc định mà chúng tôi đang thực hiện, nhưng tôi nghĩ mình sẽ thấy nếu có một cách đơn giản hơn. Cảm ơn. – gooli

Các vấn đề liên quan