国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

關于Oracle的Dual表

2024-08-29 13:53:27
字體:
來源:轉載
供稿:網友

      有朋友問到關于Oracle的Dual表問題,并且提到了Tom的一個鏈接:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
    很多人關心的是Dual的內部實現,這Oracle自然是不會披露的,不過我們可以從一些有限的資料獲得關于Dual的印象:

 

There is internalized code that makes this happen. Code checks that ensure that a table scan of SYS.DUAL only returns one row. Svrmgrl behaviour is incorrect but this is now an obsolete PRoduct.
 

The base issue you should always remember and keep is: DUAL table should always have 1 ROW. Dual is a normal table with one dummy column of varchar2(1).
This is basically used from several applications as a pseudo table for getting results from a select statement that use functions like sysdate or other prebuilt or application functions.
If DUAL has no rows at all some applications (that use DUAL) may fail with NO_DATA_FOUND exception. If DUAL has more than 1 row then applications (that use DUAL) may fail with TOO_MANY_ROWS exception.

So DUAL should ALWAYS have 1 and only 1 row.
 

 

    前兩句話最為關鍵,實際上我們也容易猜到,Oracle通過內部代碼來實現對于DUAL的訪問和控制,并且通過Internal Code使得這個表與眾不同。

    Tom提到在Close了Database之后,可以看到這個表的內存地址及展現,這說明這個表的結構并不單純:

 

sql> select * from dual;
D
-
X

sql> alter database close;

Database altered.

sql> select * from dual;

ADDR          INDX    INST_ID D
-------- ---------- ---------- -
0A4F8858          0          1 X
 

 

    注意不要更改Dual表的內容,否則可能引起數據庫的問題。

    如果該表意外刪除,可以通過設置初始化參數replication_dependency_tracking = FALSE,重啟數據庫來重建該表。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇左市| 莱西市| 南阳市| 元氏县| 郴州市| 义马市| 北川| 靖边县| 叙永县| 方正县| 南和县| 南涧| 灵川县| 修武县| 吉安市| 桂平市| 嵊泗县| 册亨县| 新田县| 故城县| 嘉祥县| 香港 | 睢宁县| 建湖县| 通榆县| 宁河县| 沁水县| 土默特左旗| 大丰市| 蒲江县| 仙游县| 屏东市| 太白县| 金塔县| 哈密市| 临邑县| 微山县| 谢通门县| 鱼台县| 威宁| 永定县|