2009-09-07 41 views
6

Một trong những ứng dụng tôi phát triển được cài đặt cục bộ trên trang web của khách hàng. Điều này có nghĩa là chúng tôi phải hỗ trợ MySQL, MSSQL và Oracle vì không phải tất cả khách hàng đều sử dụng cùng một cơ sở dữ liệu.Chuyển đổi tập lệnh MS SQL sang Mysql và Oracle

Tôi đang viết một bản vá cho ứng dụng, một phần trong đó liên quan đến việc thực thi một dòng lệnh sql 5000 dòng để thực hiện sửa đổi cơ sở dữ liệu. Kịch bản được viết bằng cách sử dụng cú pháp MSSQL, tuy nhiên tôi đã tự hỏi nếu có một ứng dụng để tự động chuyển đổi cú pháp MSSQL thành cú pháp của Oracle và/hoặc MySQL để cứu tôi khỏi phải tự làm điều đó.

+2

Câu hỏi đặt ra là: bạn có tin tưởng cơ sở dữ liệu 'sản xuất' của bạn bằng tập lệnh được tạo tự động hay không ... –

+0

Nếu nó vượt qua các thủ tục kiểm tra của QA, tất nhiên. – user169743

+0

Bạn có QA? May mắn. :) – JRadness

Trả lời

0

Tôi đang viết một bản vá cho ứng dụng, một phần trong đó liên quan đến việc thực hiện một dòng lệnh sql 5000 để thực hiện sửa đổi cơ sở dữ liệu. Kịch bản được viết bằng cách sử dụng cú pháp MSSQL, tuy nhiên tôi đã tự hỏi nếu có một ứng dụng để tự động chuyển đổi cú pháp MSSQL thành cú pháp của Oracle và/hoặc MySQL để lưu tôi phải tự làm điều đó.

Rất khó có thể.

Tập hợp con chung của SQL tất cả các hệ thống này đều hỗ trợ khá ít.

Vì bạn có 5000 dòng mã trong tập lệnh của mình, nhiều khả năng là nó nằm ngoài tập hợp con này.

Phần tồi tệ nhất là nó thường không chỉ khác biệt cú pháp, mà đúng hơn là các khái niệm chính.

  • Oracle, ví dụ, hỗ trợ MERGE tuyên bố cho phép chèn, xóa và cập nhật trong một truy vấn duy nhất.

    Không SQL Server 2005 cũng không hỗ trợ MySQL.

  • MySQL hỗ trợ xóa khỏi nhiều bảng cùng một lúc: không có sẵn trong Oracle hoặc SQL Server.

  • SQL Server, không giống như OracleMySQL, có thể cập nhật chức năng phân tích sử dụng CTE.

1

Và thậm chí nhiều hơn liên quan là cơ sở dữ liệu hỗ trợ cơ chế khóa khác nhau, vì vậy bạn có thể nhận được một số bảng và lập chỉ mục trong đó, nhưng bạn có thể giới thiệu một số vấn đề mà rất khó để debug/tái tạo khi bạn phơi bày nó vào tự nhiên.

Bạn cần 3 chuyên gia để phân loại rất nhiều - mỗi chuyên gia SQL Server, MySQL và Oracle. Điều đó hoặc cơ sở dữ liệu của bạn cần chạy với tối đa một người dùng, với hiệu suất kém và cơ chế cơ sở dữ liệu rất trung bình.

Xin lỗi ...

+0

vui vì nó chỉ được sử dụng bởi một người dùng (ứng dụng) và bất kỳ lệnh nào được thực hiện rất đơn giản, nó chỉ hoạt động như một lớp kiên trì. – user169743

1

Tôi không biết bộ chuyển đổi cú pháp lập trình cơ sở dữ liệu. Tuy nhiên, vì bạn đang làm việc trên một nền tảng đa cơ sở dữ liệu, tôi sẽ xem xét việc sử dụng Thư viện doanh nghiệp và khối ứng dụng của nó. Điều này sẽ giúp bạn giảm đau đầu, bạn phải tin tôi!

Tôi biết rằng bạn không có đủ thời gian cho các bản phát hành sắp tới của mình, do đó bạn sẽ phải thiết lập các tập lệnh theo cách thủ công, nhưng hãy ưu tiên và xem xét sử dụng Thư viện doanh nghiệp của Microsoft.

Một cách khác có thể là mang những động cơ này càng gần nhau càng tốt để bạn có thể làm việc thuận tiện hơn với ba người trong số họ. Vì vậy, nó đòi hỏi bạn phải phân tích và quyết định chức năng nào nên được tạo ra ở đâu và tại sao? Đây là công việc khó khăn, nghiêm túc.

Theo kinh nghiệm của riêng tôi, tôi không còn phát triển nếu không có Thư viện doanh nghiệp, ít nhất là khối Ứng dụng dữ liệu (DAAB).

đây liên kết:

  1. http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
  2. http://www.codeplex.com/entlib

Hãy cho tôi biết nếu điều này giúp bạn. Nếu bạn cần hỗ trợ thêm để thiết lập lớp Truy cập dữ liệu của bạn với Thư viện doanh nghiệp, hãy cho tôi biết.

EDIT 2015.01.16

Một cách tiếp cận tốt nhất những ngày này là việc sử dụng một trong hai NHibernate, Entity Framework hoặc các công cụ khác ORM như thế này.

Với chúng, không còn cần bất kỳ tập lệnh SQL nào, tất cả được tạo cho bạn tùy thuộc vào cấu hình RDBMS của bạn.

2

Để chuyển đổi sang Oracle, bạn có thể thử Migration Workbench.

+0

Liên kết của bạn đã chết. Hãy cập nhật nó. –

+0

Hoặc, bạn biết đấy, bạn có thể cập nhật nó ... bạn có đủ danh tiếng. –

+0

Vì tôi đang tìm kiếm cùng một :) –

4

Đây là một chủ đề cũ, nhưng tôi khuyên bạn nên sử dụng công cụ sau: http://www.sqlines.com/online. Tôi đã có trải nghiệm tốt khi sử dụng nó. Không tìm thấy vấn đề gì từ 3 tháng trước (khi tôi bắt đầu sử dụng nó).

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