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

BSI小尾 n.obi @ bconsystems.co.jp
2003年 11月 19日 (水) 20:33:44 JST


始めまして、小尾と申します。

今回、仕事でオラクルからPostgreSQLの移行を検討することになりました。
しかしオラクルにはストアドが沢山あります。(1000以上)
本数も問題ですが、オラクル独特の機能の為に移行が大変そうです。
簡単な方法を教えて頂けないでしょうか。

1.配列

	オラクル
		CREATE OR REPLACE PROCEDURE ○○○(

			CURSOR CSR_軸;
			CURSOR CSR_データA;
			CURSOR CSR_データB;
			WK_配列     CSR_軸%ROWTYPE;
		BEGIN
			OPEN CSR_データA
			LOOP
				FETCH CSR_データA INTO WK
				WK_配列 := WK;
			END LOOP

			OPEN CSR_データB
			LOOP
				FETCH CSR_データB INTO WK
				IF 存在したら
					WK_配列 := WK;
				ELSE
					WK_配列 := WK;
				END IF;
			END LOOP
			*CSR_データAとCSR_データBの取得データを配列に格納
			  (件数が100万件と100万件のテーブルの簡単なJOINではないの
で、
                                        レスポンスを考慮して配列のマッチング
処理で対応しています。)

			FOR
				配列に格納された値を処理後にテーブルに登録
			LOOP
		END;

	上記のようにストアド内でデータを配列格納して編集しています。(ストアド内で
処理は完結しています。)
	このストアドを簡単に移行するにはどのように対応すれば宜しいのでしょうか。
	移行ですので、TEMPに置き換えたり、Cで対応しては検証テストがかかり、移
行メリットが無くなってしまいます。

2.EXCEPTION

	オラクルのストアド内ではEXCEPTIONが使用可能です。

		EXCEPTION
		WHEN OTHERS THEN
			ログテーブルのエラー情報出力
		END;

		EXCEPTION処理はキーの重複やデータ無し以外の予期しない障害の為に記述され
ています。
                        処理上手の抜いて記述しているのではなく、テーブル領域
やメモリー等の問題で発生するエラー情報を
		取得する為に全てのストアドに記述されています。

	このストアドを簡単に移行するにはどのように対応すれば宜しいのでしょうか。
            障害が発生してからの対応時間を早くする為にあるので、無くすことは
できません。
	また、修正が大変ですと移行メリットが無くなってしまうので、簡単な方法をおし
ていただけないでしょうか。

いろいろとわがままなことを記述しましたが、
宜しくお願いします。





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