Słyszałem ludzi odnoszących się do tego stołu i nie byłem pewien, o co chodzi.
oracle
dual-table
Brian G.
źródło
źródło
Odpowiedzi:
Jest to rodzaj fałszywej tabeli z pojedynczym rekordem służącym do wybierania, kiedy nie jesteś zainteresowany danymi, ale zamiast tego chcesz wyniki funkcji systemowej w instrukcji select:
na przykład
select sysdate from dual;
Zobacz http://www.adp-gmbh.ch/ora/misc/dual.html
źródło
To jest stół zastępczy z jednym elementem. Jest to przydatne, ponieważ Oracle nie zezwala na takie instrukcje
Możesz obejść to ograniczenie, pisząc
zamiast.
źródło
Z Wikipedii
Historia
Tabela DUAL została stworzona przez Chucka Weissa z korporacji Oracle, aby zapewnić tabelę do łączenia w widokach wewnętrznych:
Z powyższego może nie być oczywiste, ale pierwotna tabela DUAL miała w sobie dwa wiersze (stąd jej nazwa). Obecnie ma tylko jeden rząd.
Optymalizacja
DUAL był pierwotnie tabelą, a silnik bazy danych wykonywał operacje dyskowe we / wy na stole podczas wybierania z DUAL. To IO dysku było zwykle logicznym IO (nie wymagającym fizycznego dostępu do dysku), ponieważ bloki dysku były zwykle już buforowane w pamięci. Spowodowało to dużą liczbę logicznych operacji we / wy względem tabeli DUAL.
Późniejsze wersje bazy danych Oracle zostały zoptymalizowane i baza danych nie wykonuje już fizycznych ani logicznych operacji we / wy w tabeli DUAL, mimo że tabela DUAL nadal istnieje.
źródło
Myślę, że ten artykuł na Wikipedii może pomóc wyjaśnić.
http://en.wikipedia.org/wiki/DUAL_table
źródło
To specjalny stół w Oracle. Często używam go do obliczeń lub sprawdzania zmiennych systemowych. Na przykład:
Select 2*4 from dual
wypisuje wynik obliczeńSelect sysdate from dual
drukuje bieżącą datę serwera.źródło
Rodzaj pseudo-tabeli, z którą można uruchamiać polecenia i uzyskiwać wyniki, takie jak sysdate. Pomaga także sprawdzić, czy Oracle działa, i sprawdzić składnię SQL itp.
źródło
Tabela narzędzi w Oracle z tylko 1 wierszem i 1 kolumną. Służy do wykonywania szeregu operacji arytmetycznych i może być stosowany ogólnie tam, gdzie trzeba wygenerować znany wynik.
WYBIERZ * Z dual;
da pojedynczy wiersz z jedną kolumną o nazwie „DUMMY” i wartością „X”, jak pokazano tutaj:
źródło
Więcej faktów na temat DUAL ....
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
Ekscytujące eksperymenty wykonane tutaj i więcej ekscytujących wyjaśnień Toma
źródło
Tabela DUAL jest specjalną tabelą jednorzędową domyślnie występującą we wszystkich instalacjach baz danych Oracle. Jest odpowiedni do użycia przy wybieraniu pseudokolumny, takiej jak SYSDATE lub USER
Tabela ma jedną kolumnę VARCHAR2 (1) o nazwie DUMMY, która ma wartość „X”
Możesz przeczytać o tym wszystko na http://en.wikipedia.org/wiki/DUAL_table
źródło
DUAL jest niezbędny w rozwoju PL / SQL do używania funkcji, które są dostępne tylko w SQL
na przykład
źródło
Jest to obiekt do wstawienia z tego zwrotu 1 pusty wiersz. Na przykład: wybierz 1 z podwójnego; zwraca 1
wybierz 21 + 44 z podwójnego; zwraca 65
wybierz [sekwencję] .nextval z podwójnego; zwraca następną wartość z sekwencji.
źródło
DUAL używaliśmy głównie do uzyskiwania kolejnej liczby z sekwencji.
Składnia: SELECT 'nazwa_sekwencyjna'. NEXTVAL OD DUAL
Zwróci wartość jednego wiersza i jednej kolumny (nazwa kolumny NEXTVAL).
źródło
Inną sytuacją, która wymaga,
select ... from dual
jest to, kiedy chcemy pobrać kod (definicję danych) dla różnych obiektów bazy danych (takich jak TABELA, FUNKCJA, TRIGGER, PAKIET), używając wbudowanejDBMS_METADATA.GET_DDL
funkcji:jest prawdą, że obecnie IDE oferują możliwość przeglądania DDL tabeli, ale w prostszych środowiskach, takich jak SQL Plus, może to być naprawdę przydatne.
EDYTOWAĆ
bardziej ogólna sytuacja: w zasadzie, kiedy musimy użyć dowolnej procedury PL / SQL w standardowej instrukcji SQL lub gdy chcemy wywołać procedurę z wiersza poleceń:
oba przepisy pochodzą z książki „Oracle PL / SQL Recipes” autorstwa Josha Juneau i Matt Areny
źródło
DUAL to specjalny jeden wiersz, jedna tabela kolumnowa domyślnie obecna we wszystkich bazach danych Oracle. Właścicielem DUAL jest SYS.
DUAL to tabela tworzona automatycznie przez Oracle Database wraz z funkcjami danych. Jest zawsze używany do uzyskania funkcji systemu operacyjnego (takich jak data, godzina, wyrażenie arytmetyczne. Itp.)
źródło