こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2005-03-17 00:56:33

QNo.1273922

困ってます

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

この質問と回答を拝見し、逆に質問ですが、

私の場合、SQL*PLUSを×や「終了」でするとコミットされてしまいます。

SHOW AUTOCOMMITはOFFでした。

どういうことでしょうか?

投稿日時 - 2005-09-05 11:36:56

ANo.3

私も COMMIT コマンドが発行されていないからだと思います。

SQL*Plus で以下のコマンドを入力じてください。

SQL>SHOW AUTOCOMMIT
autocommit OFF

となっていたら

SQL>SET AUTOCOMMIT ON と入力してみてください。

もういちど

SQL>SHOW AUTOCOMMIT
autocommit IMMEDIATE

となるはずです。

これで、必ずデータベスへの更新は反映されますが、ROOLBACK コマンドで戻すことはできなくなります。

詳しくは SQL*Plus ユーザーズ・ガイトおよびリファレンスをみてください。

投稿日時 - 2005-03-17 14:56:37

ANo.2

SQL*Plusを「EXIT」コマンドや「QUIT」コマンドで終了させると、自動的にコミットが発行されます。(QUITはEXITのシノニムです。)

orakさんはファイルメニューの終了やWindow右上の×ボタンで終了させていませんか?

投稿日時 - 2005-03-17 11:14:38

お礼

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

投稿日時 - 2005-03-18 02:15:41

ANo.1

Web屋です。OkWebの様なサイトを設計, 構築する仕事をしています。

通常、考えにくい動作の様な気がします。
単純に、commit していない。

と言う事では無いですかね?

投稿日時 - 2005-03-17 01:00:22

あなたにオススメの質問