• 締切済み

updateしてもSQLを終了すると元に戻る

Oracle_9→access2002 で外注開発されたシステムを利用しています さて、Oracle、SQL_Plusの[update TABLE1 SET FIELD1 = 'X' WHERE FIELD1 IS NULL]等でデータ更新後、[select 列名リスト FROM TABLE1 WHERE 検索条件]で確認すると確かに更新されているが、SQLを終了後、再起動すると元に戻ってしまいますが、どんな原因が考えられますか?update実行後に確定操作等あるのですか? Oracleはまったく初心者ですがお願いします

みんなの回答

  • shin9387
  • ベストアンサー率0% (0/2)
回答No.4

この質問と回答を拝見し、逆に質問ですが、 私の場合、SQL*PLUSを×や「終了」でするとコミットされてしまいます。 SHOW AUTOCOMMITはOFFでした。 どういうことでしょうか?

  • raphel_7
  • ベストアンサー率34% (86/252)
回答No.3

私も COMMIT コマンドが発行されていないからだと思います。 SQL*Plus で以下のコマンドを入力じてください。 SQL>SHOW AUTOCOMMIT autocommit OFF となっていたら SQL>SET AUTOCOMMIT ON と入力してみてください。 もういちど SQL>SHOW AUTOCOMMIT autocommit IMMEDIATE となるはずです。 これで、必ずデータベスへの更新は反映されますが、ROOLBACK コマンドで戻すことはできなくなります。 詳しくは SQL*Plus ユーザーズ・ガイトおよびリファレンスをみてください。

  • guchi32
  • ベストアンサー率100% (10/10)
回答No.2

SQL*Plusを「EXIT」コマンドや「QUIT」コマンドで終了させると、自動的にコミットが発行されます。(QUITはEXITのシノニムです。) orakさんはファイルメニューの終了やWindow右上の×ボタンで終了させていませんか?

orak
質問者

お礼

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 も参考になりました。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

Web屋です。OkWebの様なサイトを設計, 構築する仕事をしています。 通常、考えにくい動作の様な気がします。 単純に、commit していない。 と言う事では無いですかね?

関連するQ&A