重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

A 回答 (4件)

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



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

SHOW AUTOCOMMITはOFFでした。

どういうことでしょうか?
    • good
    • 0

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



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

SQL>SHOW AUTOCOMMIT
autocommit OFF

となっていたら

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

もういちど

SQL>SHOW AUTOCOMMIT
autocommit IMMEDIATE

となるはずです。

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

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

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

(QUITはEXITのシノニムです。)

orakさんはファイルメニューの終了やWindow右上の×ボタンで終了させていませんか?
    • good
    • 0
この回答へのお礼

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

Web屋です。

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

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す