A5:SQL Mk-2

開発のこと、日々のこと

プロシージャのコミットについて

ホーム フォーラム A5:SQL Mk-2掲示板 プロシージャのコミットについて

このトピックには2件の返信が含まれ、2人の参加者がいます。3 ヶ月、 1 週前 もたしん さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #1730 返信

    もたしん

    環境 Oracle11g
    データベース更新時に自動的にトランザクションを開始する。のオプションをチェックしていますが,SQLとして,BEGIN~END込みの処理を実行する場合,および登録済みのプロシージャをCALLで呼ぶ場合は,プロシジャ内にCOMMITを指定していなくても,処理完了時にオートコミットされるようです。(sqlplusで実行する場合コミットしなければrollbackが可能です。)

    実行前に明示的にトランザクション開始ボタンを押下すれば,ロールバックは可能になるようですが,プロシージャの場合も「データベース更新時に自動的にトランザクションを開始する。」が効くようにすることはできないでしょうか?

    #1849 返信

    松原正和
    キーマスター

    もたしんさんこんにちは。

    Version 2.13.0 release candidate 1でプロシージャ実行時にトランザクションを開始するオプションを追加してみました。
    (プロシージャモードでの実行時にCREATE, ALTER, DROP以外から始まるテキストを実行時にトランザクションを開始します。)

    プロシージャ内でDBが更新されるかどうかは、A5:SQL Mk-2側ではわからないので、なかなかどうすべきかは悩むところですね…。

    #1876 返信

    もたしん

    対応ありがとうございます。
    コミット,ロールバックのボタンを押す手間はありますが,オートコミットされるよりはリスクは少ないので,個人的にはselect文だけのプロシージャでも無条件でトランザクション開始で問題はないかとは思います。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: プロシージャのコミットについて
あなたの情報:




コメントは受け付けていません。