2011-08-05 2 views
2

누구나 SQL에서 마이그레이션하는 동안 데이터베이스에서 많은 수의 t-sql 저장 프로 시저를 postgresql로 변환하는 데 도움이되는 도구 나 공유 코드를 제안 할 수 있습니까? postgresql에 서버 데이터베이스? 여기 == 편집t-sql (SQL Server) 저장 프로 시저를 pgsql (postgre sql)로 변환하는 도구

== 몇 가지 명확한 목표입니다

  1. 변환 모든 SPS 해당 구문을 집중함으로써, 성능/튜닝 등을 고려하지 않고 SQL을 postgre하는 것은 권리 및 쿼리는 올바른 데이터를 반환

언어 변환 및 변형 관련 가이드 라인이 실제로 유용합니다. 몇 가지 오래된 vbscript 예를보고 (대부분 저에게 맞지 않습니다) T4 템플릿으로 변환하려고 할 수 있습니다.

아무도 정말 이런 종류의 전환이 필요하지 않다는 사실에 놀랐습니다. 나는 여전히 그렇게 할 수있는 올바른 도구가 없다.

미리 감사드립니다.

Convert from other databases to PostgreSQL :

답변

0

당신은이 페이지를 본 적이 있나요?

+0

그래, 그 중 누구도 SP 전환에 유용하지 않습니다. –

+3

T-SQL에서 PostgreSQL로 변환하는 것과 관련하여 또 다른 [document] (http://wiki.postgresql.org/images/e/e4/5.pdf)를 찾았지만 도구가 아닙니다. –

2

번역 언어가 어렵습니다. 원본을 파싱하고 (문서에서 말하는 이상한 모든 이상한 구문과 사마귀로) 이름의 의미를 파악하고, 의미를 발견하고, 미묘한 세부 사항을 잃지 않고 대상 언어로 번역해야합니다.

당신이이 기성품에 대한 해결책을 찾으면 놀랄 것입니다. 문제의 일부는 방대한 N 개의 소스 언어 (방언으로 악화됨)와 NxM 번역기 라이브러리가 필요하다는 엄청난 수의 타겟 M이 있습니다. 몇 달을 기다리면 N과 M이 모두 움직입니다. 한 가지 희망은 N 개의 언어를 공통의 보편적 인 핵심 언어로 번역하고 그것을 M 개의 타겟으로 변환하여 N + M만을 필요로하는 것입니다. 그러나 아무도 정말로 보편적 인 언어를 찾지 못했고, 몇 달을 기다리면 N과 M 어쨌든 움직여 라.

작업에 대한 특정 번역자를 작성 (또는 다른 사람을 구성하는 것을 고려) 할 수 있습니다. 번역기의 많은 부분 (구문 분석, 이름 분석, 패턴 일치/번역, ...)이 처음부터 재구성되는 경향이 있기 때문에 이것은 일반적으로 신뢰할 수 있기를 원하면 비경제적인 것입니다.

신중하다면 (많은) 공유 기계를 구축하여 번역기 인프라의 비용을 상각 할 수 있습니다. 일단 그렇게하면 번역사를 만드는 것이 더 쉬우 며 (여전히 쉽지 않음) 경제가 개별 사례에 더 적합합니다. 이 접근법에 대한 자세한 내용은 다음 웹 사이트를 참조하십시오. What kinds of patterns could I enforce on the code to make it easier to translate to another programming language?

+0

우리는 가능하다고 생각하지 않기 때문에 도구를 찾을 수 없을 것이라고 생각합니다. 우리의 응용 프로그램은 여러 DBMS를 지원합니다. 우리는 T-SQL로 작성하고 Oracle PL/SQL 등으로 변환합니다.그러나 PostGreSQL 함수는 상당히 다르며 select 쿼리의 결과를 반환하도록 설계되지 않았습니다. 예를 들어, PostGreSQL에서 리턴 타입의 모든 컬럼을 지정해야하기 때문에 "Select * from TableA inner join TableB from A.ID = B.ID"의 결과를 반환하는 함수가 많은 작업입니다. 함수. 다른 DBMS는이를 요구하지 않습니다. 아마도 PostGreSQL을 지원하지 않을 것입니다. –

+0

저장 프로 시저 언어는 모두 Turing 가능 AFAIK입니다. 즉, 상대방이 계산할 수있는 모든 것을 계산할 수 있습니다. 따라서 * 가능합니다. 허락하신다면 실제로 많은 노력이 필요할 것입니다. 실제로 노력을 기울일 가치가 없으므로 할 수없는 것과는 다릅니다. 나는 생계를 위해 통역을 쌓는다. 우리는 못생긴 번역에서 가장 실용적인 문제를 극복했습니다. 그래서 나는 당신보다 훨씬 낙관적입니다. –

0

개발자가 모든 SP를 변환해야합니다. Ira Baxter는 언어에 대해 (절대적으로 정확함) 말하고 있지만 플랫폼 차이에 관해 말하고 싶습니다. 예를 들어, 사용 임시 테이블을 다른 플랫폼으로 변환하는 방법은 무엇입니까? 성능 튜닝 된 쿼리는 어떻게해야합니까? 성능 조정은 RDBMS의 특정 기능을 사용하며이 조정은 자동으로 변환 될 수 없습니다. 등등 ...

관련 문제