A5:SQL Mk-2

開発のこと、日々のこと

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

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

  • このトピックには2件の返信、2人の参加者があり、最後にもたしんにより5年、 11ヶ月前に更新されました。
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件中)
返信先: プロシージャのコミットについてで#1876に返信
あなたの情報:




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