Tôi đã nghe mọi người đề cập đến bảng này và không chắc nó là gì.Bảng kép trong Oracle là gì?
Trả lời
Đó là một loại bảng giả với một bản ghi duy nhất được sử dụng để chọn khi bạn không thực sự quan tâm đến dữ liệu, nhưng thay vào đó lại muốn kết quả một số chức năng hệ thống trong một tuyên bố chọn:
ví dụ select sysdate from dual;
Một nguồn thông tin khác -> http://en.wikipedia.org/wiki/DUAL_table –
Tôi nghĩ bài viết wikipedia này có thể giúp làm rõ.
http://en.wikipedia.org/wiki/DUAL_table
Bảng DUAL là một đặc biệt một hàng bảng hiện tại theo mặc định trong tất cả các cài đặt cơ sở dữ liệu Oracle . Nó phù hợp để sử dụng trong việc lựa chọn một pseudocolumn như SYSDATE hoặc USER Bảng này có một VARCHAR2 đơn (1) cột gọi là DUMMY mà có một giá trị của "X"
Kind của một bảng pseudo bạn có thể chạy lệnh chống lại và lấy lại kết quả, chẳng hạn như sysdate. Cũng giúp bạn kiểm tra xem liệu Oracle có lên và kiểm tra cú pháp sql hay không, vv
Đó là bảng đặc biệt trong Oracle. Tôi thường sử dụng nó để tính toán hoặc kiểm tra các biến hệ thống. Ví dụ:
Select 2*4 from dual
in ra kết quả của việc tính toánSelect sysdate from dual
in máy chủ ngày hiện tại.
Đây là bảng giả với một phần tử trong đó. Nó rất hữu ích bởi vì Oracle không cho phép báo cáo như
SELECT 3+4
Bạn có thể làm việc xung quanh hạn chế này bằng cách viết
SELECT 3+4 FROM DUAL
để thay thế.
Đây là câu trả lời hay nhất. – johnny
Đó là một đối tượng để đưa vào từ đó trả về 1 hàng trống. Ví dụ: chọn 1 từ kép; trả về 1
chọn 21 + 44 từ kép; trả về 65
chọn [sequence] .textval from dual; trả về giá trị tiếp theo từ chuỗi.
Bảng DUAL là một bảng một hàng đặc biệt có sẵn theo mặc định trong tất cả các cài đặt cơ sở dữ liệu Oracle.Nó phù hợp để sử dụng trong việc lựa chọn một pseudocolumn như SYSDATE hoặc USER
Bảng này có một VARCHAR2 (1) cột duy nhất gọi là DUMMY mà có một giá trị của "X"
Bạn có thể đọc tất cả về nó trong http://en.wikipedia.org/wiki/DUAL_table
Từ Wikipedia
Lịch sử
bảng DUAL được tạo ra bởi Chuck Weiss của tập đoàn Oracle cung cấp một tabl e để tham gia vào chế độ xem nội bộ:
Tôi đã tạo bảng DUAL làm đối tượng cơ bản trong Từ điển dữ liệu Oracle. Nó không bao giờ có nghĩa là để được nhìn thấy chính nó, nhưng thay vào đó sử dụng bên trong một cái nhìn được dự kiến sẽ được truy vấn. Ý tưởng là bạn có thể thực hiện JOIN với bảng DUAL và tạo hai hàng trong kết quả cho mỗi hàng trong bảng của bạn. Sau đó, bằng cách sử dụng GROUP BY, kết quả kết quả có thể được tóm tắt để hiển thị số lượng bộ nhớ cho mức DATA và cho (các) mức INDEX. Tên, DUAL, dường như thích hợp cho quá trình tạo một cặp hàng chỉ từ một. 1
Có thể không rõ ràng ở trên, nhưng bảng DUAL ban đầu có hai hàng trong đó (do đó tên của nó). Ngày nay nó chỉ có một hàng.
Tối ưu hóa
DUAL ban đầu là một bảng và cơ sở dữ liệu sẽ thực hiện đĩa IO trên bàn khi lựa chọn từ DUAL. IO đĩa này thường là hợp lý IO (không liên quan đến truy cập đĩa vật lý) vì các khối đĩa thường được lưu trong bộ nhớ. Điều này dẫn đến một lượng lớn IO hợp lý so với bảng DUAL.
Các phiên bản sau của cơ sở dữ liệu Oracle đã được tối ưu hóa và cơ sở dữ liệu không còn thực hiện IO hợp lý hoặc logic trên bảng DUAL mặc dù bảng DUAL vẫn thực sự tồn tại.
DUAL là cần thiết trong phát triển PL/SQL để sử dụng các hàm chỉ khả dụng trong SQL
ví dụ:
DECLARE
x XMLTYPE;
BEGIN
SELECT xmlelement("hhh", 'stuff')
INTO x
FROM dual;
END;
More Thực tế về DUAL ....
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
thí nghiệm cảm giác mạnh thực hiện ở đây, và giải thích ly kỳ hơn bởi Tom
Một bảng tiện ích trong Oracle với chỉ 1 hàng và 1 cột. Nó được sử dụng để thực hiện một số phép toán số học và có thể được sử dụng nói chung nơi mà một trong những nhu cầu để tạo ra một đầu ra được biết đến.
CHỌN * TỪ kép;
sẽ cung cấp một hàng duy nhất, với một cột duy nhất có tên là "giả" và giá trị "X" như hình ở đây:
DUMMY ----- X
DUAL chúng tôi chủ yếu sử dụng để nhận được số tiếp theo từ các chuỗi.
Cú pháp: SELECT 'sequence_name'.NEXTVAL FROM DUAL
này sẽ trở lại với một hàng một giá trị cột (tên cột NEXTVAL).
Điều đó không cần thiết kể từ 11g. Trình tự có thể được sử dụng nguyên bản trong PL/SQL. –
một tình huống đòi hỏi select ... from dual
là khi chúng ta muốn lấy mã (định nghĩa dữ liệu) cho các đối tượng cơ sở dữ liệu khác nhau (như TABLE, CHỨC NĂNG, TRIGGER, GÓI), bằng cách sử dụng được xây dựng trong DBMS_METADATA.GET_DDL
chức năng:
select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;
select DBMS_METADATA.GET_DDL('FUNCTION','<function_name>') from DUAL;
đúng là ngày nay các IDE cung cấp khả năng xem DDL của một bảng, nhưng trong các môi trường đơn giản hơn như SQL Plus, điều này có thể thực sự tiện dụng.
EDIT
một tình huống tổng quát hơn: về cơ bản, khi chúng ta cần phải sử dụng bất kỳ thủ tục PL/SQL bên trong một câu lệnh SQL chuẩn, hoặc khi chúng ta muốn gọi một thủ tục từ dòng lệnh:
select my_function(<input_params>) from dual;
cả công thức nấu ăn được lấy từ cuốn sách 'Oracle PL/SQL Công thức' bởi Josh Juneau và Matt Arena
- 1. Chế độ xem trong Oracle là gì?
- 2. "Lỗi ngăn xếp kép" là gì?
- 3. Phủ định kép (!!) trong javascript - mục đích là gì?
- 4. Dấu chéo ngược kép \ nghĩa là gì trong Haskell?
- 5. Chính xác thì dấu ngoặc kép xung quanh tên bảng là gì?
- 6. Bảng Oracle có $ trong tên
- 7. Bảng android_metadata là gì?
- 8. Cách nhanh nhất để chèn dữ liệu vào bảng Oracle là gì?
- 9. Ý nghĩa của biểu tượng '@' trong Oracle SQL là gì?
- 10. TNS: người nghe trong ngữ cảnh của Oracle là gì?
- 11. Biến bảng trong Oracle PL/SQL?
- 12. Oracle - Bảng Zombie
- 13. Trả về getLine1Number() với điện thoại SIM kép là gì?
- 14. (+) làm gì trong Oracle SQL?
- 15. Phân vùng bảng là gì?
- 16. Bảng biểu tượng là gì?
- 17. Phân vùng bảng động trong Oracle
- 18. Tương đương PostgreSQL của SYSDATE từ Oracle là gì?
- 19. Sự khác biệt của các chuỗi trong dấu nháy đơn hoặc kép trong groovy là gì?
- 20. Quy ước kép trừ (-) trong tên hàm có nghĩa là gì trong Emacs Lisp
- 21. Sự khác nhau giữa hàm RANK() và DENSE_RANK() trong oracle là gì?
- 22. Kiểu dữ liệu Oracle của MLSLABEL là gì?
- 23. Cách di chuyển bảng từ một vùng bảng này sang bảng khác trong oracle 11g
- 24. Đổi tên Bảng Oracle hoặc Xem
- 25. Chọn Giá trị từ Biến Bảng/Bảng Oracle?
- 26. Oracle sáp nhập hằng vào bảng duy nhất
- 27. Oracle: tình huống sử dụng RAISE_APPLICATION_ERROR là gì?
- 28. Trình tích hợp dữ liệu Oracle là gì?
- 29. sự khác nhau giữa các kiểu dữ liệu thô dài và dài trong Oracle là gì?
- 30. Oracle tạo bảng có chú thích cột
http://asktom.oracle.com/pls/asktom/f?p=100:11:0 :::: P11_QUESTION_ID: 1562813956388 chi tiết về đôi – SriniV