Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Alternatif untuk tabel sementara MySQL di Oracle

Di Oracle, Anda sangat jarang membutuhkan tabel sementara. Anda biasanya memerlukan tabel sementara di database lain karena database tersebut tidak menerapkan konsistensi baca multi-versi dan ada kemungkinan seseorang yang membaca data dari tabel akan diblokir saat prosedur Anda berjalan atau prosedur Anda akan melakukan pembacaan kotor jika tidak 't menyimpan data ke struktur yang terpisah. Anda tidak memerlukan tabel sementara global di Oracle karena salah satu dari alasan ini karena pembaca tidak memblokir penulis dan pembacaan kotor tidak dimungkinkan.

Jika Anda hanya membutuhkan tempat sementara untuk menyimpan data saat Anda melakukan perhitungan PL/SQL, koleksi PL/SQL lebih umum digunakan daripada tabel sementara di Oracle. Dengan cara ini, Anda tidak mendorong data bolak-balik dari mesin PL/SQL ke mesin SQL dan kembali ke mesin PL/SQL.

CREATE PROCEDURE do_some_processing
AS
  TYPE emp_collection_typ IS TABLE OF emp%rowtype;
  l_emps emp_collection_type;

  CURSOR emp_cur
      IS SELECT *
           FROM emp;
BEGIN
  OPEN emp_cur;
  LOOP
    FETCH emp_cur 
     BULK COLLECT INTO l_emps
    LIMIT 100;

    EXIT WHEN l_emps.count = 0;

    FOR i IN 1 .. l_emps.count
    LOOP
      <<do some complicated processing>>
    END LOOP;
  END LOOP;
END;

Anda dapat membuat tabel sementara global (di luar prosedur) dan menggunakan tabel sementara global di dalam prosedur Anda sama seperti Anda menggunakan tabel lainnya. Jadi Anda dapat terus menggunakan tabel sementara jika diinginkan. Tapi saya bisa menghitung dengan satu tangan berapa kali saya benar-benar membutuhkan tabel sementara di Oracle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilkan Data dengan Format di Datagridview

  2. Melarikan diri dari kutipan tunggal dalam PHP saat memasukkan ke MySQL

  3. MySQL setara dengan fungsi DECODE di Oracle

  4. COMMIT ATAU conn.setAutoCommit(true)

  5. Bagaimana cara mempercepat jumlah pilih (*) dengan grup oleh dan di mana?