[解決済み] 例外 ORA-08103: Hibernate の setfetchsize を使用するとオブジェクトが存在しない
2022-02-11 15:13:20
質問
Hibernateを使用しています。私は約100万レコードを取得する必要があり、それはタイムアウト例外を引き起こします。だから私は使用しています
setfetchsize
6000レコードのために、それは6000レコードごとに複数のトランザクションに処理を分散させるように。
すべて取得するのに約21時間かかる。
しかし、レコードを取得している間に、誰かが取得するはずだったレコードの1つを削除した場合、私は取得します。
ORA-08103: object no longer exists
.
ここで、検索中に削除されたオブジェクトをスキップしたいのです。どうすればよいのでしょうか?
どのように解決するのですか?
で作成されたグローバルテンポラリテーブル(GTT)に基づいてカーソルがオープンされている可能性が高いです。
ON COMMIT DELETE ROWS
オプションで指定します。そして、その原因は
ORA-08103: object no longer exists
のエラーは
commit
文の直後に続く
delete
ステートメントを使用します。以下は簡単な例です。
SQL> declare
2 type t_recs is table of number;
3 l_cur sys_refcursor; -- our cursor
4 l_rec t_recs;
5
6 begin
7
8 -- populating a global temporary table GTT1 with sample data
9 insert into GTT1(col)
10 select level
11 from dual
12 connect by level <= 1000;
13
14 open l_cur -- open a cursor based on data from GTT1
15 for select col
16 from GTT1;
17
18 -- here goes delete statement
19 -- and
20 commit; <-- cause of the error. After committing all data from GTT1 will be
21 -- deleted and when we try to fetch from the cursor
22 loop -- we'll face the ORA-08103 error
23 fetch l_cur -- attempt to fetch data which are long gone.
24 bulk collect into l_rec;
25 exit when l_cur%notfound;
26 end loop;
27
28 end;
29 /
ORA-08103: object no longer exists
ORA-06512: at line 24
によるグローバル一時テーブルの再作成
on commit preserve rows
句を使用することで、そのテーブルをベースとするカーソルから安全にデータを取得することができます。
ORA-08103:
というエラーが発生します。
関連
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】使用されるSELECT文は列の数が異なる(REDUX!)
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] Hibernateの「オブジェクトは保存されていないトランジェントインスタンスを参照しています - フラッシュする前にトランジェントインスタンスを保存してください」エラーの修正方法
-
[解決済み] Hibernate使用時にパラメータ値を含むクエリ文字列を表示する方法
-
[解決済み】try catchでのThrowableとExceptionの使い分けについて
-
[解決済み】Hibernate - cascade="all-delete-orphan" のコレクションが、所有するエンティティインスタンスから参照されなくなった。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「パラメータ@objnameがあいまいか、主張する@objtype(COLUMN)が間違っています」を解決するにはどうすればよいですか?[重複している]。
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み] varchar 値 'simple, ' をデータ型 int に変換する際に変換に失敗しました。
-
[解決済み】SQLが単一グループのグループ関数でないこと
-
[解決済み】sys.dm_exec_sql_textはどのように機能するのでしょうか?
-
[解決済み] ORA-12801: 並列クエリサーバー P004 および ORA-01555 でシグナルされたエラー: スナップショットが古すぎる。
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。