[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 メーリングリストの案内