Saya pernah mendengar orang merujuk ke tabel ini dan tidak yakin tentang apa itu.
oracle
dual-table
Brian G
sumber
sumber
Jawaban:
Ini semacam tabel dummy dengan satu catatan yang digunakan untuk memilih saat Anda sebenarnya tidak tertarik dengan data, tetapi sebaliknya menginginkan hasil dari beberapa fungsi sistem dalam pernyataan pilih:
misalnya
select sysdate from dual;
Lihat http://www.adp-gmbh.ch/ora/misc/dual.html
sumber
Ini adalah meja boneka dengan satu elemen di dalamnya. Ini berguna karena Oracle tidak mengizinkan pernyataan seperti
Anda dapat mengatasi batasan ini dengan menulis
sebagai gantinya.
sumber
Dari Wikipedia
Sejarah
Tabel DUAL dibuat oleh Chuck Weiss dari perusahaan Oracle untuk menyediakan tabel untuk bergabung dalam pandangan internal:
Mungkin tidak jelas dari yang di atas, tetapi tabel DUAL asli memiliki dua baris di dalamnya (karenanya namanya). Saat ini hanya memiliki satu baris.
Optimasi
DUAL awalnya adalah sebuah tabel dan mesin database akan melakukan disk IO di atas meja ketika memilih dari DUAL. IO disk ini biasanya IO logis (tidak melibatkan akses disk fisik) karena blok disk biasanya sudah di-cache dalam memori. Ini menghasilkan sejumlah besar IO logis terhadap tabel DUAL.
Versi kemudian dari database Oracle telah dioptimalkan dan database tidak lagi melakukan IO fisik atau logis pada tabel DUAL walaupun tabel DUAL masih benar-benar ada.
sumber
Saya pikir artikel wikipedia ini dapat membantu memperjelas.
http://en.wikipedia.org/wiki/DUAL_table
sumber
Ini tabel khusus di Oracle. Saya sering menggunakannya untuk perhitungan atau memeriksa variabel sistem. Sebagai contoh:
Select 2*4 from dual
mencetak hasil perhitunganSelect sysdate from dual
mencetak tanggal server saat ini.sumber
Jenis tabel pseudo yang dapat Anda jalankan perintahnya dan dapatkan kembali hasilnya, seperti sysdate. Juga membantu Anda memeriksa apakah Oracle aktif dan memeriksa sintaks sql, dll.
sumber
Tabel utilitas di Oracle dengan hanya 1 baris dan 1 kolom. Ini digunakan untuk melakukan sejumlah operasi aritmatika dan dapat digunakan secara umum di mana orang perlu menghasilkan output yang dikenal.
PILIH * DARI dual;
akan memberikan satu baris, dengan satu kolom bernama "DUMMY" dan nilai "X" seperti yang ditunjukkan di sini:
sumber
Lebih Banyak Fakta tentang DUAL ....
http://asktom.oracle.com/pls/asktom/f?p=100:11*::::P11_QUESTION_ID:1562813956388
Eksperimen yang mendebarkan dilakukan di sini, dan penjelasan Tom yang lebih mendebarkan
sumber
Tabel DUAL adalah tabel satu-baris khusus yang hadir secara default di semua instalasi basis data Oracle. Sangat cocok untuk digunakan dalam memilih pseudocolumn seperti SYSDATE atau USER
Tabel memiliki kolom VARCHAR2 (1) tunggal yang disebut DUMMY yang memiliki nilai "X"
Anda dapat membacanya di http://en.wikipedia.org/wiki/DUAL_table
sumber
DUAL diperlukan dalam pengembangan PL / SQL untuk menggunakan fungsi yang hanya tersedia dalam SQL
misalnya
sumber
Ini adalah objek untuk dimasukkan ke dalam dari yang mengembalikan 1 baris kosong. Misalnya: pilih 1 dari dua; mengembalikan 1
pilih 21 + 44 dari dual; mengembalikan 65
pilih [urutan] .nextval dari dual; mengembalikan nilai berikutnya dari urutan.
sumber
DUAL kami terutama digunakan untuk mendapatkan nomor berikutnya dari urutan.
Sintaks: PILIH 'sequence_name'.NEXTVAL DARI DUAL
Ini akan mengembalikan nilai satu baris satu kolom (nama kolom NEXTVAL).
sumber
situasi lain yang mengharuskan
select ... from dual
adalah ketika kita ingin mengambil kode (definisi data) untuk objek database yang berbeda (seperti TABEL, FUNGSI, PEMICU, PAKET), menggunakanDBMS_METADATA.GET_DDL
fungsi bawaan:Memang benar bahwa saat ini IDE memang menawarkan kemampuan untuk melihat DDL dari sebuah tabel, tetapi dalam lingkungan yang lebih sederhana seperti SQL Plus ini bisa sangat berguna.
EDIT
situasi yang lebih umum: pada dasarnya, ketika kita perlu menggunakan prosedur PL / SQL di dalam pernyataan SQL standar, atau ketika kita ingin memanggil prosedur dari baris perintah:
kedua resep tersebut diambil dari buku 'Oracle PL / SQL Recipes' oleh Josh Juneau dan Matt Arena
sumber
DUAL adalah satu baris khusus, satu tabel kolom hadir secara default di semua database Oracle. Pemilik DUAL adalah SYS.
DUAL adalah tabel yang secara otomatis dibuat oleh Oracle Database bersama dengan fungsi data. Itu selalu digunakan untuk mendapatkan fungsi sistem operasi (seperti tanggal, waktu, ekspresi aritmatika, dll.)
sumber