[pgsql-jp: 31536] Re: オラクルストアドからの移行

Ken-ichi Nakayama aguri @ ssl.fujitsu.com
2003年 11月 19日 (水) 21:34:26 JST


なかやまといいます。

ストアドの移行にPL/pgSQLを使われるであろうと
仮定します。
各社様とも移行サービスなど設けておられるところもあると
思いますが、簡単にコンバートできる方法はあまり聞いたことがありません。
が、単純な構文のコンバートなら、7.3.2 のマニュアルですが

http://www.postgresql.jp/document/pg732doc/programmer/plpgsql-porting.html

で対応できるのではないでしょうか?

ただ、気にされているEXCEPTION(例外トラップ)については、
Oracle PL/SQLとの機能格差により、PL/pgSQLでは標準で実現できない
部分もあるかもしれませんが、今回のようにログ出力ならば、
条件付で

http://www.postgresql.jp/document/pg732doc/programmer/plpgsql-errors-and-messages.html

のように RAISE NOTICE 等でフォローできるのではないでしょうか?
サーバログに出力とありますので出力先が任意のファイルだと
工夫が必要になるかもしれません。
ただ、Oracle PL/SQLや、Java(言語として)などなら可能な
ブロック階層レベルごとの例外できるようにはどうも
なっていないようなので、そのようなコードが他に存在するなら
機械的なソースコンバートは困難なのではないでしょうか?

同等の機能があっても、動作が少し異なる部分に関しては、
ケースバイケースで対応せざるを得ないと思います。

完璧に調べていないので私も分からないのですが、
現在の最新や、開発側のTODOも含めて
PL/pgSQL自体の機能強化があるのならそれに期待。
#実装上根本的に難しい?


On Wed, 19 Nov 2003 20:33:44 +0900
"BSI小尾" <n.obi @ bconsystems.co.jp> wrote:
n.obi> 今回、仕事でオラクルからPostgreSQLの移行を検討することになりました。
n.obi> しかしオラクルにはストアドが沢山あります。(1000以上)
n.obi> 本数も問題ですが、オラクル独特の機能の為に移行が大変そうです。
n.obi> 簡単な方法を教えて頂けないでしょうか。

<skip>

n.obi> 	上記のようにストアド内でデータを配列格納して編集しています。(ストアド内で
n.obi> 処理は完結しています。)
n.obi> 	このストアドを簡単に移行するにはどのように対応すれば宜しいのでしょうか。
n.obi> 	移行ですので、TEMPに置き換えたり、Cで対応しては検証テストがかかり、移
n.obi> 行メリットが無くなってしまいます。
n.obi> 
n.obi> 2.EXCEPTION
n.obi> 
n.obi> 	オラクルのストアド内ではEXCEPTIONが使用可能です。
n.obi> 
n.obi> 		EXCEPTION
n.obi> 		WHEN OTHERS THEN
n.obi> 			ログテーブルのエラー情報出力
n.obi> 		END;
n.obi> 
n.obi> 		EXCEPTION処理はキーの重複やデータ無し以外の予期しない障害の為に記述され
n.obi> ています。
n.obi>                         処理上手の抜いて記述しているのではなく、テーブル領域
n.obi> やメモリー等の問題で発生するエラー情報を
n.obi> 		取得する為に全てのストアドに記述されています。
n.obi> 
n.obi> 	このストアドを簡単に移行するにはどのように対応すれば宜しいのでしょうか。
n.obi>             障害が発生してからの対応時間を早くする為にあるので、無くすことは
n.obi> できません。
n.obi> 	また、修正が大変ですと移行メリットが無くなってしまうので、簡単な方法をおし
n.obi> ていただけないでしょうか。

-- 
中山 賢一  aguri @ ssl.fujitsu.com   『信頼と技術で応える SSL』
株式会社富士通ソーシアルサイエンスラボラトリ (富士通SSL)
第二事業本部 ビジネス基盤センター 企画部  [Corp-Web] http://www.ssl.fujitsu.com
TEL: 044-739-1561(内線:3612)  FAX: 044-739-1548




pgsql-jp メーリングリストの案内