|
HT
|
|
SQLウィンドウでselectした結果を更新すると無関係のレコードまで更新される。
利用製品:SI Object Browser for Oracle Version 14.0.0.0(x64) 接続先DB:oracle database 12c standard edition release 12.2.0.1.0
下記テーブルに対して、SQLウィンドウで「select VALUE from TEST.T_TEST where ID= '0000000001'」を実行して その実行結果のVALUEを変更すると、元の値:9 →更新後:Xを行うと下記メッセージが表示されます。 [Updateコマンドがupdatedしたのは[116]レコードで[1]レコードではあり ません。考え得る理由:更新テーブルに主キーまたは行識別子がありません。 レコードは別のユーザによって変更されました。]
テーブルの内容を確認するとID指定したレコード以外のVALUE=9のレコードについてもVALUE=Xへ書き換わってしまいます。 エラーが発生するのであれば、更新をしないに倒れればよいのですが。 エラーが発生したうえで、関係のないレコードまで書き換変わるようです。
現在弊社が利用している製品のバージョンが古いのかもしれません。
SI Object Browser for Oracle Version 14の最新バージョンでは改善されておりますでしょうか。 それとも仕様なのでしょうか、仕様であればエラーメッセージは表示されないのだと思っております。
本現象の把握および、製品の最新版での対応状況、仕様かどうかを回答いただけると助かります。
掲示板を確認すると、類似の現象で下記の投稿もあるようです。 https://www.sint.co.jp/siob_bbs/bbs_disp.asp?current_page=1&disp_mode=1&message_id=7039
----テスト検証テーブル CREATE TABLE TEST.T_TEST ( ID VARCHAR2(10) NOT NULL,--連番でテストデータ作成 VALUE VARCHAR2(1), --ランダムで数字1桁のテストデータ作成 CONSTRAINT C_TEST PRIMARY KEY (ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) LOGGING ENABLE ) PCTFREE 10 MAXTRANS 255 STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT) NOCACHE LOGGING
|
|
|