PL/SQLからPL/pgSQLへの移植について

シェアする

PL/SQLからPL/pgSQLへの移植は簡単にできるのだろうか?

自動変換してくれるツールはないのだろうか?

色々と調べてやった結果をまとめてみます。

ora2pgで変換

OracleからPostgresへの変換ツールとしてora2pgがあります。

テーブルやビューはもちろんですが、ユーザ関数やプロシージャ、パッケージも移行対象となっていたため、ora2pgを使って変換してみました。

利点

組込み関数で対応できている関数は正しく変換された。decodeはcase文、nvlはcoalesce等々。また、Oracle独自の(+)結合もleft joinへと変換されました。ora2pgを使わずに手動で書き直すことを考えると、工数もミスも減るため、使う価値はありました。

欠点

Postgresにはパッケージがないため、パッケージはスキーマとして変換される。プロシージャがファンクションとして変換される。当然ながら、Oracleにしかない組込み関数等については変換はされない。

結論

結論から言うと、使うべきです。ただし、ora2pgはLinuxでしか動かせません。色々とインストールするものがあるので、導入に少し手間がかかるかもしれません。ora2pgは無償ツールですので、100%変換は期待できません。ですが、1から書き直すのと、60%ぐらい変換された状態から書き直すのとでは雲泥の差です。変換元のPLSQLが他のRDBを意識して独自関数を使用していなければ、100%変換も期待できるでしょう。

スポンサーリンク
PC用広告

フォローする

スポンサーリンク
PC用広告