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

Oracle Sql :Prosedur yang dapat membuat tabel sementara di dalamnya

Mengapa Anda ingin membuat tabel sementara dalam prosedur tersimpan?

Relatif umum untuk membuat tabel sementara di database lain (SQL Server dan MySQL, misalnya). Sangat, sangat jarang melakukan hal yang sama di Oracle. Di hampir setiap kasus di mana Anda tergoda untuk membuat tabel sementara di Oracle, ada pendekatan arsitektur yang lebih baik. Ada utas di tumpukan DBA yang membahas alternatif untuk tabel sementara dan mengapa mereka biasanya tidak dibutuhkan di Oracle.

Secara terprogram, Anda dapat membuat objek menggunakan SQL dinamis

CREATE OR REPLACE PROCEDURE dont_do_this
AS
BEGIN
  EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE a( id INTEGER )';
END;

Namun, jika Anda membuat tabel sementara secara dinamis, setiap referensi ke tabel itu juga harus melalui SQL dinamis-- Anda tidak akan dapat menulis SELECT sederhana pernyataan terhadap meja. Dan definisi tabel sementara di Oracle bersifat global sehingga dapat dilihat oleh setiap sesi. Jika Anda memiliki dua sesi berbeda yang keduanya mencoba membuat tabel yang sama, sesi kedua akan mendapatkan kesalahan. Jika Anda mengharapkan tabel memiliki definisi yang berbeda dalam sesi yang berbeda, Anda mendapatkan lebih banyak masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TZ_OFFSET() Fungsi di Oracle

  2. Menambahkan data yang digabungkan ke hasil kueri

  3. Bagaimana cara menghapus nilai default dari kolom di Oracle?

  4. orakel | hapus catatan duplikat

  5. Eksekusi kueri Oracle Ad Hoc dengan Parameter Bind Erroring Out; ORA-00907:tanda kurung kanan hilang