it-swarm-id.com

Apakah tabel ganda dalam Oracle?

Saya pernah mendengar orang merujuk ke tabel ini dan tidak yakin tentang apa itu.

216
Brian G

Ini semacam tabel dummy dengan satu catatan yang digunakan untuk memilih saat Anda sebenarnya tidak tertarik pada 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

216
Sean McMains

Ini adalah meja boneka dengan satu elemen di dalamnya. Ini berguna karena Oracle tidak mengizinkan pernyataan seperti

 SELECT 3+4

Anda dapat mengatasi batasan ini dengan menulis

 SELECT 3+4 FROM DUAL

sebagai gantinya.

77
mfx

Dari Wikipedia

Riwayat

Tabel DUAL dibuat oleh Chuck Weiss dari perusahaan Oracle untuk menyediakan tabel untuk bergabung dalam pandangan internal:

Saya membuat tabel DUAL sebagai objek yang mendasari dalam Kamus Data Oracle. Itu tidak pernah dimaksudkan untuk dilihat sendiri, tetapi sebaliknya digunakan di dalam tampilan yang diharapkan akan ditanyakan. Idenya adalah Anda bisa melakukan GABUNG ke tabel DUAL dan membuat dua baris di hasilnya untuk setiap satu baris di tabel Anda. Kemudian, dengan menggunakan GROUP BY, gabungan yang dihasilkan dapat diringkas untuk menunjukkan jumlah penyimpanan untuk tingkat DATA dan untuk tingkat INDEX. Nama itu, DUAL, tampaknya cocok untuk proses menciptakan sepasang baris dari satu. 1

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 basis data akan menjalankan disk IO di atas meja ketika memilih dari DUAL. Disk ini IO biasanya logis IO (tidak melibatkan akses disk fisik) karena blok disk biasanya sudah di-cache dalam memori. Ini menghasilkan sejumlah besar logis IO terhadap tabel DUAL.

Versi kemudian dari database Oracle telah dioptimalkan dan database tidak lagi melakukan fisik atau logis IO pada tabel DUAL meskipun tabel DUAL masih benar-benar ada.

66
Ivan Bosnic

Saya pikir artikel wikipedia ini dapat membantu memperjelas.

http://en.wikipedia.org/wiki/DUAL_table

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 ini memiliki satu kolom VARCHAR2 (1) yang disebut DUMMY yang memiliki nilai "X"

20
Jorge Ferreira

Ini tabel khusus di Oracle. Saya sering menggunakannya untuk perhitungan atau memeriksa variabel sistem. Sebagai contoh:

  • Select 2*4 from dual mencetak hasil perhitungan
  • Select sysdate from dual mencetak tanggal server saat ini.
10
Martin08

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:

DUMMY
----- 
X
4
AB01

Jenis tabel pseudo yang dapat Anda jalankan perintahnya melawan dan mendapatkan kembali hasil, seperti sysdate. Juga membantu Anda memeriksa apakah Oracle sudah aktif dan memeriksa sintaks sql, dll.

4
Kevan Emmott

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 yang lebih mendebarkan dari Tom

3

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 ini memiliki kolom VARCHAR2 (1) tunggal yang disebut DUMMY yang memiliki nilai "X"

Anda dapat membaca semua tentang itu di http://en.wikipedia.org/wiki/DUAL_table

2
Sakin

DUAL diperlukan dalam pengembangan PL/SQL untuk menggunakan fungsi yang hanya tersedia dalam SQL

misalnya.

DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;
1
steevc

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).

0
Vishwa G

Ini adalah objek untuk dimasukkan 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.

0
Gonzalo Merayo

situasi lain yang memerlukan select ... from dual adalah ketika kita ingin mengambil kode (definisi data) untuk objek basis data yang berbeda (seperti TABEL, FUNGSI, PEMICU, PAKET), menggunakan fungsi DBMS_METADATA.GET_DDL bawaan: fungsi:

select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;

select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;

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:

select my_function(<input_params>) from dual;

kedua resep tersebut diambil dari buku 'Oracle PL/SQL Recipes' oleh Josh Juneau dan Matt Arena

0
Newton fan 01

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.)

SELECT SYSDATE from dual;  
0
Manjunatha B