2009-09-07 3 views
6

개발 한 애플리케이션 중 하나가 고객 사이트에 로컬로 설치됩니다. 즉, 모든 고객이 동일한 데이터베이스 엔진을 사용하는 것은 아니므로 MySQL, MSSQL 및 Oracle을 지원해야합니다.MS SQL 스크립트를 MySQL 및 Oracle로 변환

일부는 데이터베이스 수정을 위해 5000 라인 SQL 스크립트를 실행하는 응용 프로그램 용 패치를 작성하고 있습니다. 스크립트는 MSSQL 구문을 사용하여 작성되었지만 MSSQL 구문을 Oracle 및/또는 MySQL의 구문으로 자동 변환하는 응용 프로그램이 있으면 수동으로 수행하지 않아도됩니다.

+2

질문 : 자동 생성 스크립트를 사용하여 '생산'데이터베이스를 신뢰할 수 있습니까? –

+0

물론 QA의 테스트 절차를 통과했다면. – user169743

+0

QA가 있습니까? 럭키. :) – JRadness

답변

0

응용 프로그램 용 패치를 작성 중입니다.이 중 일부는 5000 라인 SQL 스크립트를 실행하여 데이터베이스를 수정합니다. 이 스크립트는 MSSQL 구문을 사용하여 작성되었지만, MSSQL 구문을 Oracle 및/또는 MySQL으로 자동 변환하는 응용 프로그램이 있는지 수동으로 확인해야하는 경우 궁금합니다.

거의 불가능합니다.

SQL의 공통 하위 집합은 이러한 시스템 지원이 거의 없습니다.

스크립트에 5000 줄의 코드가 있으므로 대부분이 부분 집합에서 제외됩니다.

가장 나쁜 부분은 일반적으로 구문의 차이뿐만 아니라 개념적인 개념의 차이입니다.

  • Oracle

    , 예를 들어, 삭제하고 하나의 쿼리에서 업데이트, 삽입 할 수 있습니다 MERGE 문을 지원합니다.

    SQL Server 2005이나 MySQL도 지원하지 않습니다.

  • MySQL 여러 테이블에서 동시에 삭제할 수 있습니다. Oracle 또는 SQL Server에는 사용할 수 없습니다.

  • SQL Server

    , OracleMySQL 달리, 분석 기능을 사용 CTE 년대를 업데이트 할 수 있습니다.

1

그리고 더 관련된 것은 데이터베이스가 다른 잠금 메커니즘을 지원, 그래서 당신은 거기에 몇 가지 테이블과 인덱스를받을 수 있습니다,하지만 당신은 디버그 매우 어려운 몇 가지 문제를 소개 할 수 있다는 것입니다/때를 복제 그것을 야생에 드러내십시오.

SQL Server, MySQL 및 Oracle 각각 하나를 분류하려면 3 명의 전문가가 필요합니다. 이 데이터베이스 또는 데이터베이스는 성능이 좋지 않고 평균적인 데이터베이스 메커니즘을 사용하여 최대 한 명의 사용자로 실행해야합니다.

죄송합니다 ...

+0

재미있는 것은 한 사용자 (응용 프로그램)에서만 사용하고 실행 된 명령은 매우 간단하므로 단순히 지속성 계층으로 작동합니다. – user169743

1

저는 데이터베이스 엔진 프로그래밍 구문 변환기에 대해 알고 있습니다. 그러나 다중 데이터베이스 플랫폼에서 작업하고 있으므로 엔터프라이즈 라이브러리 및 해당 응용 프로그램 블록을 사용하는 것이 좋습니다. 이것은 두통을 저장합니다, 당신은 나를 믿어!

아마도 출시 예정 시간이 충분하지 않으므로 수동으로 스크립트를 설정해야하지만 자신에게 유리하게 생각하고 Microsoft Enterprise 라이브러리 사용을 고려해야합니다.

또 다른 가능한 방법은 이러한 엔진을 가능한 한 서로 가깝게 배치하여 세 개의 엔진으로보다 편리하게 작업 할 수 있도록하는 것입니다. 따라서 분석해야하고 어디서 왜 어떤 기능을 만들어야하는지 결정해야합니다. 심각하게 힘든 일입니다.

내 경험에 비추어 볼 때 더 이상 엔터프라이즈 라이브러리가 없어도 데이터 응용 프로그램 블록 (DAAB)을 개발하지 않아도됩니다. 여기에 링크

:

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

이 당신을 도움이 있다면 알려주세요. Enterprise Library로 데이터 액세스 레이어를 설정하는 데 도움이 더 필요하면 알려주십시오.

편집 2015년 1월 16일

또 다른 좋은 방법 요즘 이들과 같은 하나 NHibernate, Entity Framework 또는 다른 ORM 도구의 사용이다.

더 이상 SQL 스크립트가 필요하지 않으며 모든 것이 RDBMS 구성에 따라 생성됩니다.

2

오라클로 변환하려면 Migration Workbench을 사용해보십시오.

+0

링크가 죽었습니다. 그것을 업데이트하십시오. –

+0

아니면 알다시피, 당신은 그것을 업데이트 할 수 있습니다 ... 당신은 충분한 평판을 가지고 있습니다. –

+0

나는 같은 것을 찾고 있기 때문에 :) –

4

이전 주제이지만 다음 도구를 사용하는 것이 좋습니다. http://www.sqlines.com/online. 나는 그것을 사용하는 좋은 경험을했다. 3 개월 전부터 문제가 발견되지 않았습니다 (사용을 시작할 때).

관련 문제