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

Tabel Eksternal Oracle

Tabel eksternal adalah salah satu fitur penting di oracle , kita akan menjelajahi tabel eksternal di oracle dengan contoh di postingan ini

Apa itu TABEL EKSTERNAL di Oracle?

1) Tabel eksternal adalah tabel yang hanya dapat dibaca di mana data disimpan dalam file datar di luar database

2) Anda dapat menggunakan fitur tabel eksternal untuk mengakses file eksternal seolah-olah itu adalah tabel di dalam database.

3)   Saat membuat tabel eksternal, Anda menentukan struktur dan lokasinya dengan di oracle. Pada dasarnya Anda hanya menyimpan metadata di dalam oracle

4) Saat Anda membuat kueri tabel, Oracle membaca tabel eksternal dan mengembalikan hasilnya seolah-olah data telah disimpan dalam database.

5) Server oracle menyediakan dua driver oracle utama untuk membaca file datar

  1. Oracle_loader:Ini digunakan untuk membaca file datar menggunakan teknologi oracle loader. Ini pada dasarnya memungkinkan untuk membaca file yang dapat ditafsirkan menggunakan teknologi pemuat SQL
  2. Oracle_datapump:Ini digunakan untuk mengimpor dan mengekspor data menggunakan format independen platform

MENGAKSES DATA TABEL EKSTERNAL

Ada beberapa langkah yang perlu dilakukan untuk mengakses tabel eksternal

  • Pertama-tama kita harus menggunakan perintah create directory untuk mendefinisikan objek direktori yang menunjuk ke lokasi file eksternal
sqlplus "/ as sysdba"Buat direktori ext_dir sebagai ‘/export/home/ora/external’;
  • Pengguna yang akan mengakses file eksternal harus memiliki hak baca dan tulis di direktori.
Berikan semua pada direktori ext_dir kepada pengguna;
  • Sekarang mari kita membuat atau meletakkan beberapa file di bawah direktori
SQL> Conn user/userSQL> Spool city.lstSQL> Pilih kota || ',' || negara bagian || ',' || negara dari negara;SQL> Spool off 

Sekarang Anda seharusnya dapat melihat file city.lst di direktori

  • Sekarang kita harus membuat tabel eksternal menggunakan perintah di bawah ini
Buat tabel city_ext(city varchar(10),state varchar(14),country varchar(13))Organization external  ( ketik oracle_loaderDefault directory ext_dirAccess parameter( record dipisahkan oleh newlineFields diakhiri dengan “,"( city char(10), state char(14),country char(13)))Location ('city.lst'))PARALLEL 5REJECT LIMIT UNLIMITED;

Penjelasan setiap istilah

Organisasi eksternal Ini memberitahu bahwa data disimpan di luar database
Ketik Ini adalah driver oracle atau API  yang menafsirkan data eksternal untuk database. Jika Anda tidak menentukan apa pun, maka oracle_loader  adalah defaultnya
Direktori default Ini adalah lokasi direktori tempat file datar dapat disimpan. Direktori default juga digunakan untuk menyimpan file bantu yang dibuat dari akses driver oracle seperti file log dan file buruk. Kami Dapat menentukan beberapa direktori untuk memfasilitasi penyeimbangan beban pada beberapa drive
Parameter akses Ini memungkinkan Anda menentukan nilai parameter dari driver akses khusus untuk tabel eksternal ini
Lokasi Ini memungkinkan Anda menentukan nama file datar eksternal
BATAS TOLAK Ini memungkinkan Anda menentukan berapa banyak kesalahan konversi yang dapat terjadi sebelum server oracle membatalkan operasi dan mengembalikan kesalahan

5) MEMILIH DATA DARI TABEL EKSTERNAL

SQL> pilih * dari city_ext;

Ini akan dibaca dari city.lst yang merupakan file level sistem operasi.

Jika file city.lst tidak ada, pernyataan pilih akan memunculkan kesalahan ini

SELECT **ERROR pada baris 1:ORA-29913:kesalahan dalam menjalankan ODCIEXTTABLEOPEN calloutORA-29400:kesalahan kartrid dataKUP-04040:file city.lst di EXT_DIR tidak ditemukanORA-06512:pada "SYS.ORACLE_LOADER", baris 14ORA- 06512:pada baris 1

BATASAN PADA TABEL EKSTERNAL

  1. Anda tidak dapat melakukan operasi penyisipan, pembaruan, dan penghapusan
  2. Pengindeksan Oracle tidak dapat dilakukan
  3.  Pembatasan tidak dimungkinkan

MANFAAT TABEL EKSTERNAL DI ORACLE

  1. a) Kueri tabel eksternal diselesaikan dengan sangat cepat meskipun id pemindaian tabel lengkap diperlukan untuk setiap akses
  2. b) Anda dapat menggabungkan tabel eksternal satu sama lain atau ke tabel oracle standar
  3. c) Kita dapat membuat tampilan pada tabel eksternal

Pembaruan Baru di 11gR2 untuk Tabel Eksternal

Dengan Oracle 11g Release 2, klausa PREPROCESSOR baru diperkenalkan yang dapat mengidentifikasi objek direktori dan skrip yang digunakan untuk memproses file sebelum dibaca oleh tabel eksternal. Fitur ini telah di-backport ke 11gR1 (11.1.0.7).

Klausa PREPROCESSOR sangat berguna untuk membaca file terkompresi, karena file tersebut dibuka ritsletingnya dan disalurkan langsung ke proses tabel eksternal tanpa harus membuka ritsletingnya pada sistem file.

Mari kita ambil contoh untuk lebih memahami parameter ini.

Misalkan city.list dikompres, maka nama filenya adalah city.list.Z

Buat tabel city_ext(city varchar(10),state varchar(14),country varchar(13))Organization external  ( ketik oracle_loaderDefault directory ext_dirPREPROCESSOR ext_dir:uncompressAccess parameter( record dipisahkan oleh newlineFields diakhiri dengan “,"( city char( 10), state char(14),country char(13)))Location ('city.lst.Z'))PARALLEL 5REJECT LIMIT UNLIMITED;

Di sini klausa PREPROCESSOR pertama-tama akan membuka kompres file city.lst.Z menggunakan perintah uncompress sebelum mencari data. Semua akan terjadi dengan cepat dan Anda tidak perlu membuka kompresi file city.lst.Z

Membongkar/Memuat data menggunakan tabel Eksternal Oracle

Oracle juga menyediakan dukungan untuk teknologi datapump di tabel eksternal.

Kita dapat membongkar tabel menggunakan driver akses oracle_datadump

BUAT TABEL country_xtORGANIZATION EXTERNAL(TYPE ORACLE_DATAPUMPDEFAULT DIRECTORY ext_dirLOCATION ('countries.dmp'))AS SELECT * FROM countries;

Ini akan membuat country.dmp di direktori. Sekarang bahkan tabel negara dihapus, kita masih dapat melihat data menggunakan tabel countries_xt.

Kita bahkan dapat mengambil file dump ke database lain dan kemudian membuat tabel eksternal untuk melihat datanya

BUAT TABEL negara_xt (kota    VARCHAR2(10),negara bagian       VARCHAR2(9),negara    VARCHAR2(9))ORGANISASI EKSTERNAL (TYPE ORACLE_DATAPUMPDEFAULT DIRECTORY ext_dirLOCATION ( negara);Pilih * dari negara.dmp 

Peningkatan dalam tabel Eksternal di database 12c

Oracle_loader

Klausa lokasi dapat memiliki  karakter liar. * singkatan dari beberapa karakter dan ? untuk satu karakter.

Klausa csv bidang telah diperkenalkan

Oracle_datapump

Kami dapat membongkar data menggunakan opsi kompresi lanjutan

Artikel terkait

ORA-29913 dengan tabel eksternal
Tips tentang tabel eksternal
Cara memuat bidang CLOB dengan tabel eksternal
Oracle buat tabel sebagai pilihan


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL plus bagaimana cara mengakhiri perintah dalam file SQL?

  2. 3 Cara Mengembalikan Zona Waktu dari Nilai Datetime di Oracle

  3. Hasilkan rentang tanggal dari dua kolom tanggal

  4. Oracle menyalin data ke tabel lain

  5. Oracle ORA-01008:tidak semua variabel terikat Kesalahan w/ Parameter