Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pengecualian ORA-08103:objek tidak lagi ada saat menggunakan setfetchsize dari Hibernate

Kemungkinan besar kursor dibuka berdasarkan tabel sementara global (GTT), yang telah dibuat dengan ON COMMIT DELETE ROWS pilihan. Dan penyebab objek ORA-08103: object no longer exists kesalahannya adalah commit pernyataan yang mengikuti tepat setelah delete penyataan. Berikut ini contoh sederhananya:

 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

Pembuatan ulang tabel sementara global dengan on commit preserve rows klausa akan memungkinkan untuk mengambil data dengan aman dari kursor yang didasarkan pada tabel itu tanpa takut menghadapi ORA-08103: kesalahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menghasilkan (atau mendapatkan) skrip ddl pada tabel yang ada di Oracle? Saya harus membuatnya kembali di Hive

  2. Java Multicast Time To Live selalu 0

  3. Mengelola Armada CDB di Oracle Database 18c

  4. Urutan evaluasi klausa Oracle SQL

  5. Cari Tahu Simbol Mata Uang Yang Digunakan Sesi Anda di Oracle