2011-08-05 13 views
2

SQLから移行する際に、データベース内の多数のt-sqlストアドプロシージャをpostgresqlに変換するツールや共有コードを提案できます。 postgresqlへのサーバーデータベース?ここ== 編集t-sql(SQL Server)のストアドプロシージャをpgsql(postgre sql)に変換するツール

==は、いくつかの明確な目標です:

  1. 変換すべてのSPのみ、その構文を集束させることによって、パフォーマンス/チューニングなどを考慮せずに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個のソース言語(方言によって悪化した)と多数のターゲットMがあり、NxMトランスレータのライブラリが必要です。そして数ヶ月待つと、NとMの両方が動く。 1つの希望は、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

ストアドプロシージャ言語はすべてチューリング対応AFAIKです。つまり、相手が計算できるものを計算することができます。それで、*可能です。確かに、それは実際には努力の価値はない、それはあなたがそれを行うことができないとは異なる仕事がたくさんあるかもしれません。私は生きるための翻訳者を築いています。私たちは醜い翻訳の中で最も実用的な問題を克服しているので、私はあなたよりも楽観的です。 –

0

私はすべての開発者が変換する必要があると確信しています。 Ira Baxterは言語について(絶対的に正しい)と言いますが、プラットフォームの違いについて言いたいと思います。たとえば、使用方法の異なる一時テーブルを異なるプラットフォームに変換する方法はありますか? パフォーマンスチューニングされたクエリはどうすればいいですか?パフォーマンスチューニングはRDBMSの特定の機能を使用し、このチューニングは自動的には変換されません。それで...

関連する問題