- 締切済み
updateしてもSQLを終了すると元に戻る
Oracle_9→access2002 で外注開発されたシステムを利用しています さて、Oracle、SQL_Plusの[update TABLE1 SET FIELD1 = 'X' WHERE FIELD1 IS NULL]等でデータ更新後、[select 列名リスト FROM TABLE1 WHERE 検索条件]で確認すると確かに更新されているが、SQLを終了後、再起動すると元に戻ってしまいますが、どんな原因が考えられますか?update実行後に確定操作等あるのですか? Oracleはまったく初心者ですがお願いします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- shin9387
- ベストアンサー率0% (0/2)
この質問と回答を拝見し、逆に質問ですが、 私の場合、SQL*PLUSを×や「終了」でするとコミットされてしまいます。 SHOW AUTOCOMMITはOFFでした。 どういうことでしょうか?
- raphel_7
- ベストアンサー率34% (86/252)
私も COMMIT コマンドが発行されていないからだと思います。 SQL*Plus で以下のコマンドを入力じてください。 SQL>SHOW AUTOCOMMIT autocommit OFF となっていたら SQL>SET AUTOCOMMIT ON と入力してみてください。 もういちど SQL>SHOW AUTOCOMMIT autocommit IMMEDIATE となるはずです。 これで、必ずデータベスへの更新は反映されますが、ROOLBACK コマンドで戻すことはできなくなります。 詳しくは SQL*Plus ユーザーズ・ガイトおよびリファレンスをみてください。
- guchi32
- ベストアンサー率100% (10/10)
SQL*Plusを「EXIT」コマンドや「QUIT」コマンドで終了させると、自動的にコミットが発行されます。(QUITはEXITのシノニムです。) orakさんはファイルメニューの終了やWindow右上の×ボタンで終了させていませんか?
- Dpop
- ベストアンサー率51% (279/544)
Web屋です。OkWebの様なサイトを設計, 構築する仕事をしています。 通常、考えにくい動作の様な気がします。 単純に、commit していない。 と言う事では無いですかね?
お礼
rollback,commitという言葉の勉強になりました raphel_7さんの回答も参考にすると ファイルメニューの終了やWindow右上の×ボタンで終了させるとCOMMIT(確定)されずにROOLBACKされてしまうのですね。 SQL>EXIT [Enter] で終了ということですね。やってみます。 guchi32さんDpopさんraphel_7さんありがとうございました。 QNo.1270552「DB2でSelectした時(rollback,commitの必要性)」、http://www.t3.rim.or.jp/~buchi/architec/sld012.htm も参考になりました。