PL / SQLでカーソルを定義していますが、ProCでカーソルを使用するのに最適な方法は何でしょうか。通常、Pro Cで定義されたカーソルの場合、次のようにします。
EXEC SQL DECLARE curs CURSOR FOR SELECT 1 FROM DUAL;
EXEC SQL OPEN curs;
EXEC SQL FETCH curs INTO :foo;
EXEC SQL CLOSE cusr;
同じ(または同様の)構文がパッケージ化されたカーソルで機能することを期待していました。たとえば、宣言付きのパッケージMyPackがあります
type MyType is record (X integer);
cursor MyCurs(x in integer) return MyType;
これで、Pro * Cコードに、最初のスタイルの構文を機能させることができなかったため、カーソルを開いたり、フェッチを実行したりする、かなり満足のいく埋め込みPL/SQLがありません。例を使用する
EXEC SQL EXECUTE
DECLARE
XTable is table of MyPack.MyType;
BEGIN
OPEN MyPack.MyCurs(:param);
FETCH MyPack.MyCurs INTO XTable;
CLOSE MyPack.MyCurs;
END;
END-EXEC;
もっと「純粋な」Pro*Cアプローチがあるかどうか誰かが知っていますか?