「PL/SQL」の編集履歴(バックアップ)一覧はこちら

PL/SQL - (2005/11/18 (金) 15:48:32) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*PL/SQL 雑記 **独立トランザクション PL/SQLの宣言部(ISからBEGINの間)に次のように記述する。 > PRAGMA AUTONOMOUS_TRANSACTION; -メインのトランザクションから独立したトランザクションとなる。 -プロシージャ(orファンクション)を抜けた時点でトランザクションは開放される。commitしてなければrollbackされると言うこと。 -デッドロックに注意。 **set ... > set serveroutput on
*PL/SQL 雑記 **独立トランザクション PL/SQLの宣言部(ISからBEGINの間)に次のように記述する。 > PRAGMA AUTONOMOUS_TRANSACTION; -メインのトランザクションから独立したトランザクションとなる。 -プロシージャ(orファンクション)を抜けた時点でトランザクションは開放される。commitしてなければrollbackされると言うこと。 -デッドロックに注意。 **CURSORの中身を配列に保持。 LOOOP内でCURSORのOPEN,CLOSEを繰り返さないために。 > --カーソル定義 > CURSOR C01 IS > SELECT ID, NAME FROM HOGE_TABLE; > --ROWTYPE定義 > R01 C01%ROWTYPE; > --コレクション型の定義 > TYPE ARRAY IS TABLE OF C01%ROWTYPE; > LIST ARRAY := ARRAY(); --コレクションの初期化 > I NUMBER := 0; --添え字の定義 > > OPEN C01; > LOOP > FETCH C01 INTO R01; > EXIT WHEN C01%NOTFOUND; --フェッチ終了したら抜ける。 > I := I+1; --添え字をインクリメント > LIST.EXTEND(I); --Rowを保持するために配列を拡張する。 > LIST(I) := R01; --拡張した領域にRow情報を代入。 > END LOOP; > CLOSE C01; > > FOR X IN 1 .. I > --こんな感じにカーソルを閉じた後もアクセス可能。 > DBMS_OUTPUT.PUT_LINE(LIST(X).ID || LIST(X).NAME); > END LOOP; 他にもっといいやり方知っている方、教えてください。 **ストアド実行 -引数、戻り値無しの場合。 > exec hoge -引数有り、戻り値無しの場合。 > exec hoge(1,2,3); -引数有り、戻り値有りの場合。 > declare > x integer; > begin > x := hoge; > end; > / 無名プロシージャ宣言と実行。 他のやり方がわかりません。 ---- *何かあればどうぞ #comment(vsize=2,nsize=20,size=40)

表示オプション

横に並べて表示:
変化行の前後のみ表示:
記事メニュー
目安箱バナー