精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Oracle數據庫中DUAL表的使用

運維 數據庫運維 Oracle
在MySQL中可以直接select 'david';但在Oracle中不能執行。為了解決這一問題,我們有必要就介紹一下Oracle數據庫中的DUAL表。

1、DUAL表的用途

Dual 是 Oracle中的一個實際存在的表,任何用戶均可讀取,常用在沒有目標表的Select語句塊中

--查看當前連接用戶
SQL> select user from dual;
USER
------------------------------
SYSTEM
--查看當前日期、時間
SQL> select sysdate from dual;
SYSDATE
-----------
2007-1-24 1
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2007-01-24 15:02:47
--當作計算器用
SQL> select 1+2 from dual;
       1+2
----------
         3
--查看序列值
SQL> create sequence aaa increment by 1 start with 1;
SQL> select aaa.nextval from dual;
          NEXTVAL
----------
         1
SQL> select aaa.currval from dual;
   CURRVAL
----------
         1

2、關于DUAL表的測試與分析

DUAL就是個一行一列的表,如果你往里執行insert、delete、truncate操作,就會導致很多程序出問題。結果也因sql*plus、pl/sql dev等工具而異。

--查看DUAL是什么OBJECT
--DUAL是屬于SYS schema的一個表,然后以PUBLIC SYNONYM的方式供其他數據庫USER使用.
SQL> select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';
OWNER      OBJECT_NAME       OBJECT_TYPE
---------- ----------------- ------------------
SYS        DUAL              TABLE
PUBLIC     DUAL              SYNONYM

--查看表結構,只有一個字段DUMMY,為VARCHAR2(1)型
SQL> desc dual
Name Type        Nullable Default Comments
----- ----------- -------- ------- --------
DUMMY VARCHAR2(1) Y

--DUAL表的結構:
create table SYS.DUAL
(
DUMMY VARCHAR2(1)
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
    initial 16K
    next 16K
    minextents 1
    maxextents 505
    pctincrease 50
);

/*

很是困惑,ORACLE為什么要用VARCHAR(1)型,用CHAR(1)難道不好么?從這樣的表結構來看,DUAL表設計的目的就是要盡可能的簡單,以減少檢索的開銷。

還有,DUAL表是建立在SYSTEM表空間的,***是因為DUAL表是SYS這個用戶建的,本來默認的表空間就是SYSTEM;第二,把這個可能經常被查詢的表和用戶表分開來存放,對于系統性能的是有好處的。

有了創建了表、創建了同義詞還是不夠的。DUAL在SYS這個Schema下面,因此用別的用戶登錄是無法查詢這個表的,因此還需要授權:

grant select on SYS.DUAL to PUBLIC with grant option;

將Select 權限授予公眾。接下來看看DUAL表中的數據,事實上,DUAL表中的數據和ORACLE數據庫環境有著十分重要的關系(ORACLE不會為此癱瘓,但是不少存儲過程以及一些查詢將無法被正確執行)。

*/

--查詢行數
--在創建數據庫之后,DUAL表中便已經被插入了一條記錄。個人認為:DUMMY字段的值并沒有什么關系,重要的是DUAL表中的記錄數
SQL> select count(*) from dual;
COUNT(*)
----------
         1
       
SQL> select * from dual;
DUMMY
-----
X

--插入數據,再查詢記錄,只返回一行記錄
SQL> insert into dual values ('Y');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into dual values ('X');
1 row created.
SQL> insert into dual values ('Z');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from dual;
COUNT(*)
----------
4
SQL> select * from dual;
DUMMY
-----
X

/*
--假我們插入一條數據,DUAL表不是返回一行,而是多行記錄,那會是什么結果呢?
SQL> insert into dual values('Y');
1 行 已插入
SQL> commit;
提交完成
SQL> select * from dual;
DUMMY
-----
X
Y
SQL> select sysdate from dual;
SYSDATE
-----------
2004-12-15
2004-12-15

這個時候返回的是兩條記錄,這樣同樣會引起問題。在通過使用

select sysdate into v_sysdate from dual;

來獲取時間或者其他信息的存儲過程來說,ORACLE會拋出TOO_MANY_ROWS(ORA-01422)異常。
因此,需要保證在DUAL表內有且僅有一條記錄。當然,也不能把DUAL表的UPDATE,INSERT,DELETE權限隨意釋放出去,這樣對于系統是很危險的

*/

--把表截掉
SQL> truncate table dual;
Table truncated.
SQL> select count(*) from dual;
COUNT(*)
----------
0
SQL> select * from dual;
no rows selected
SQL> select sysdate from dual;
no rows selected

--試著把DUAL表中的數據刪除,看看會出現什么結果:
SQL> delete from dual;
1 行 已刪除
SQL> select * from dual;
DUMMY
-----
SQL> select sysdate from dual;
SYSDATE
-----------
/*

我們便取不到系統日期了。因為,sysdate是個函數,作用于每一個數據行。現在沒有數據了,自然就不可能取出系統日期。這個對于很多用

select sysdate into v_sysdate from dual;

這種方式取系統時間以及其他信息的存儲過程來說是致命的,因為,Oracle會馬上拋出一個NO_DATA_FOUND(ORA-01403)的異常,即使異常被捕獲,存儲過程也將無法正確完成要求的動作。

*/

--對于DELETE操作來說,ORACLE對DUAL表的操作做了一些內部處理,盡量保證DUAL表中只返回一條記錄.當然這寫內部操作是不可見的
--不管表內有多少記錄(沒有記錄除外),ORACLE對于每次DELETE操作都只刪除了一條數據。
SQL> select count(*) from dual;
COUNT(*)
----------
2
SQL> delete from dual;
1 行 已刪除
SQL> commit;
提交完成
SQL> select count(*) from dual;
COUNT(*)
----------
1

/*
附: ORACLE關于DUAL表不同尋常特性的解釋
There is internalized code that makes this happen. Code checks that ensurethat 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
*/

DUAL表可以執行插入、更新、刪除操作,還可以執行drop操作。但是不要去執行drop表的操作,否則會使系統不能用,數據庫起不了,會報Database startup crashes with ORA-1092錯誤。

3、如果DUAL表被“不幸”刪除后的恢復:用sys用戶登陸。創建DUAL表。授予公眾SELECT權限(SQL如上述,但不要給UPDATE,INSERT,DELETE權限)。

向DUAL表插入一條記錄(僅此一條): insert into dual values('X');提交修改。

--用sys用戶登陸。
SQL> create pfile=’d:\pfile.bak’ from spfile
SQL> shutdown immediate
--在d:\pfile.bak文件中***加入一條:replication_dependency_tracking = FALSE
--重新啟動數據庫:
SQL> startup pfile=’d:\pfile.bak’
SQL> create table “sys”.”DUAL”
     ( “DUMMY” varchar2(1) )
     pctfree 10 pctused 4;
SQL> insert into dual values(‘X’);
SQL> commit;
SQL> Grant select on dual to Public;

授權成功。

SQL> select * from dual;
D
-
X

SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL>

--OK, 下面就可以正常使用了。

【編輯推薦】

  1. 淺談在Oracle中如何利用REDO實現故障恢復 
  2. Oracle與SQL Server之間的數據遷移
  3. 優化數據庫大幅度提高Oracle的性能
責任編輯:彭凡 來源: javaeye
相關推薦

2010-08-04 11:38:24

Oracle數據庫

2011-08-11 16:55:34

Oracle數據庫AWR

2011-05-19 13:25:14

Oracle數據庫

2010-09-08 16:03:57

SQL臨時表數據庫

2011-04-08 16:00:11

Oracle數據庫外部表

2019-10-11 08:19:01

Oracle數據庫表空間設計

2011-08-03 13:11:10

Oracle數據庫序列

2011-03-22 14:49:35

Oracle數據庫重定義表

2011-08-16 13:17:29

2010-04-14 15:14:11

Oracle數據庫

2010-04-02 13:59:08

Oracle數據庫

2011-03-29 10:47:49

ORACLE數據庫

2011-08-11 17:56:00

Oracle數據庫decodesign

2011-08-19 16:20:14

Oracle數據庫查看工具LogMine

2011-07-05 09:27:54

DUAL表數據庫

2009-11-17 09:31:06

Oracle Dual

2010-04-28 18:25:51

Oracle數據庫

2010-05-05 14:13:52

Oracle數據

2011-08-18 15:49:21

Oracle厲行計劃

2011-05-17 15:02:15

ORACLE數據庫備份
點贊
收藏

51CTO技術棧公眾號

国产精品99精品| 巨乳女教师的诱惑| youjizz在线播放| 免费在线成人网| 久久国产精彩视频| 黄色国产在线视频| 欧美性片在线观看| 亚洲女人****多毛耸耸8| 国产伦精品一区二区三区高清| 51国产偷自视频区视频| 一级毛片免费高清中文字幕久久网| 日韩欧美中文一区二区| 57pao成人国产永久免费| 国产精品三级在线观看无码| 色婷婷成人网| 亚洲va韩国va欧美va精品| 神马影院我不卡| 亚洲国产精彩视频| 精品国产一区一区二区三亚瑟 | 真人抽搐一进一出视频| 你懂的免费在线观看视频网站| 国产麻豆成人精品| 国产精品91在线| 国产一级中文字幕| 亚洲成av人片一区二区密柚| 亚洲欧美日韩直播| 337p日本欧洲亚洲大胆张筱雨| 九九久久国产| 91九色02白丝porn| 国产精品久久中文字幕| а√天堂官网中文在线| 国产亚洲午夜高清国产拍精品| 99在线免费观看视频| 中文字幕视频免费观看| 久久av一区二区三区| 欧美激情亚洲自拍| 久久久久久久久久网站| 久久福利影院| 亚洲视频在线播放| 国产精品伦子伦| 国产成人av毛片| 欧美一区二区三区免费大片| 91蝌蚪视频在线观看| 女人高潮被爽到呻吟在线观看| 一区二区三区欧美日| 一区二区三区四区在线视频| 国产精品一级伦理| 久久在线观看免费| 精品乱码一区二区三区| 欧美熟妇另类久久久久久不卡| 国产乱子轮精品视频| 国产主播精品在线| 一级特黄aa大片| 久久精品麻豆| 国产成人精品综合| 亚洲成人av网址| 日韩精品1区2区3区| 国产成人精品电影| 毛片在线免费播放| 男人操女人的视频在线观看欧美| 国产成人综合一区二区三区| 天堂网视频在线| 久久www成人_看片免费不卡| 日本一区二区在线播放| 亚洲欧美日韩激情| 日韩黄色片在线观看| 国产高清视频一区三区| 中文字幕 自拍偷拍| 另类中文字幕网| 成人免费网站在线观看| 国产不卡精品视频| 国产不卡视频一区二区三区| 国产99在线播放| 五月天婷婷激情网| 久久久99精品免费观看不卡| 水蜜桃一区二区| 拍真实国产伦偷精品| 亚洲精品美国一| 国产一级爱c视频| 手机av免费在线观看| 99在线热播精品免费| 欧美午夜精品理论片a级大开眼界| 国产在线一二三区| 最新国产の精品合集bt伙计| 国产乱人伦精品一区二区三区| 后进极品白嫩翘臀在线播放| 欧美色播在线播放| 午夜免费福利视频在线观看| 亚洲精品a区| 日韩精品在线免费播放| 国产三级在线观看完整版| 爱高潮www亚洲精品| 日韩高清av一区二区三区| 亚洲成人黄色av| 女主播福利一区| 欧美一级淫片aaaaaaa视频| 欧美高清69hd| 成人三级在线视频| 视频一区国产精品| 欧美日韩经典丝袜| 91福利区一区二区三区| 波多野结衣网页| 亚洲成在人线免费观看| 久久伊人精品视频| 久久高清免费视频| 老司机午夜精品| 精品一区2区三区| 午夜国产福利在线| 香蕉成人啪国产精品视频综合网| 亚洲免费看av| 日韩美女精品| 美日韩在线视频| jizz国产在线观看| 粉嫩av一区二区三区粉嫩| 日本免费一区二区三区| 日本三级在线观看网站| 精品婷婷伊人一区三区三| 日本japanese极品少妇| 一区二区不卡| 国产精品啪视频| 欧美视频综合| 亚洲狠狠爱一区二区三区| 午夜剧场高清版免费观看| 日韩极品在线| 欧美激情精品久久久久久蜜臀| 中文字幕黄色av| 2023国产精品视频| 日韩av中文字幕第一页| 精品中文在线| 日韩亚洲欧美中文在线| 天天射天天干天天| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲欧洲二区| 一区二区三区四区精品| 六月丁香激情综合| 成人网男人的天堂| 欧美另类videosbestsex日本| 久久av影院| 亚洲日本成人女熟在线观看| 欧美精品二区三区| 成人精品gif动图一区| 黑人巨茎大战欧美白妇| 91视频成人| 久久九九全国免费精品观看| 亚洲一区二区人妻| 国产精品三级电影| 午夜免费高清视频| 欧美精品系列| 国产精品老女人精品视频| 久久久久久久久亚洲精品| 欧美午夜影院在线视频| 国产 中文 字幕 日韩 在线| 亚洲精选成人| 精品国产乱码一区二区三区四区| h片视频在线观看| 亚洲国产91色在线| 久久免费激情视频| 久久美女艺术照精彩视频福利播放| aa视频在线播放| 女同久久另类99精品国产| 97超碰国产精品女人人人爽| 午夜视频www| 欧美视频在线看| 成人性生交大免费看| 老色鬼久久亚洲一区二区| 日本在线观看一区二区三区| 日韩欧美一区二区三区在线观看| 一区二区欧美日韩视频| 中文字幕在线观看高清| ●精品国产综合乱码久久久久| 精品综合久久久久| 欧美精品综合| 精品久久中出| 99久久久国产精品免费调教网站 | 国产伦精品一区二区三区视频黑人| 青青青草视频在线| 日韩精品视频三区| 黄色大全在线观看| ...xxx性欧美| 菠萝菠萝蜜网站| 免费成人小视频| 国产在线无码精品| 日韩精品免费一区二区三区竹菊| 国产精品99久久久久久人| 欧美高清视频| 亚洲国产精品免费| 国产乱码在线观看| 一区二区在线观看视频| 成人手机在线免费视频| 美女久久久精品| 福利在线一区二区| 精品日产免费二区日产免费二区| 亚洲一区中文字幕| 中文字幕在线看片| 久久夜色撩人精品| 九色在线观看| 精品三级在线看| 中文在线字幕av| 激情久久av一区av二区av三区| 五月激情四射婷婷| 北条麻妃国产九九精品视频| the porn av| 99在线精品免费视频九九视 | 午夜精品视频| 欧美主播一区二区三区美女 久久精品人 | 天天操天天爱天天干| 欧美日韩一卡二卡三卡 | 欧美视频在线观看一区二区| 青娱乐av在线| 国产精品五月天| 91精品小视频| 国模无码大尺度一区二区三区| 波多野结衣家庭教师在线播放| 五月激情久久久| 欧美亚洲爱爱另类综合| 97久久综合区小说区图片区| 国产精品综合不卡av| 日韩激情电影| 欧美激情中文字幕在线| 国产福利在线播放麻豆| 国产亚洲美女精品久久久| 日本高清视频www| 正在播放亚洲一区| 最好看的日本字幕mv视频大全| 欧美日韩美女在线观看| 在线免费日韩av| 国产精品久久久久9999吃药| 午夜理伦三级做爰电影| 不卡电影免费在线播放一区| 一本之道在线视频| 美国av一区二区| 亚洲成色www.777999| 国产农村妇女精品一区二区| 久久久久久久9| 欧美 亚欧 日韩视频在线 | 麻豆免费在线观看| 在线精品国产成人综合| 国际av在线| 亚洲欧美三级伦理| 日韩有码电影| 亚洲精品456在线播放狼人| 亚洲欧美强伦一区二区| 日韩一级完整毛片| 99久久婷婷国产一区二区三区| 欧美日韩国产乱码电影| 一区精品在线观看| 欧洲生活片亚洲生活在线观看| 一级黄色在线视频| 在线视频亚洲一区| 日本丰满少妇做爰爽爽| 欧美中文字幕久久| 在线免费观看视频网站| 欧美日韩一本到| 91精品中文字幕| 日韩色视频在线观看| 超碰福利在线观看| 精品国产髙清在线看国产毛片| 亚洲精华国产精华精华液网站| 精品美女在线播放| 日本国产在线观看| 日韩精品中文字幕有码专区| 男人天堂网在线| 亚洲偷欧美偷国内偷| 亚洲乱亚洲乱妇| 欧美乱人伦中文字幕在线| 麻豆蜜桃在线| 欧美诱惑福利视频| 国产精品久久亚洲不卡| 国产在线拍偷自揄拍精品| 警花av一区二区三区| 精品在线一区| 大胆日韩av| 精品一区二区三区毛片| 亚洲精品韩国| 污视频免费在线观看网站| 国产一区二区免费在线| 国产乱淫av麻豆国产免费| 91亚洲午夜精品久久久久久| 国产精久久一区二区三区| 亚洲人午夜精品天堂一二香蕉| 久草免费在线观看视频| 欧美视频专区一二在线观看| 中文字幕在线观看国产| 欧美成va人片在线观看| 欧美视频综合| 欧美插天视频在线播放| 色资源二区在线视频| 国产啪精品视频| 国产精品欧美大片| 偷拍视频一区二区| 欧美日韩p片| 91av俱乐部| 国产精品18久久久久久久久久久久| 亚洲欧美在线不卡| 国产精品久久久久久久久久久免费看 | 欧美日韩在线视频首页| 97超碰人人模人人人爽人人爱| 亚洲成人动漫在线播放| av电影在线观看网址| 久久久噜噜噜久久中文字免| 欧美特大特白屁股xxxx| 91在线视频一区| 要久久电视剧全集免费| 日韩精品免费一区| 蜜臀精品一区二区三区在线观看| 国产视频精品视频| 国产精品三级电影| 国产伦精品一区二区三区视频我| 欧美成人激情免费网| 91精品国产91久久久久游泳池| 午夜精品福利视频| 亚洲一区二区三区中文字幕在线观看| 日本10禁啪啪无遮挡免费一区二区 | 精品91久久久| 日韩一区二区三区四区| av福利精品| 国产精品678| 欧美日韩破处| 欧美亚洲色图视频| 韩国欧美国产1区| 欧美激情久久久久久久| 岛国av一区二区在线在线观看| 精品黑人一区二区三区在线观看 | 国精产品久拍自产在线网站| 色综合色综合色综合| 全部免费毛片在线播放一个| 美女av一区二区| av在线播放一区二区| 深夜福利成人| 日韩高清不卡在线| 中文字幕在线观看的网站| 亚洲午夜久久久久久久久电影院| 国产色在线视频| 久久精品一区中文字幕| 国产精品美女午夜爽爽| 日韩欧美99| 日本美女视频一区二区| 亚洲精品国产91| 91成人免费电影| 国产乱视频在线观看| 国产成人激情视频| 不卡日本视频| 日本 片 成人 在线| 国产精品卡一卡二卡三| 亚洲天堂手机在线| 日韩在线欧美在线国产在线| 成人在线观看免费播放| 亚洲一区二区三区免费观看| 新狼窝色av性久久久久久| 好吊日免费视频| 在线视频一区二区三区| 五月香视频在线观看| 国产精品一二区| 1024精品久久久久久久久| 国产成人在线综合| 曰韩精品一区二区| 午夜精品久久久久久久99 | 亚洲第一导航| 久久99久久99| 欧美激情图片小说| 欧美mv日韩mv国产网站| 99爱在线视频| 蜜桃臀一区二区三区| 免费美女久久99| 久久国产波多野结衣| 精品国产第一区二区三区观看体验| 丰乳肥臀在线| 日本精品二区| 激情偷乱视频一区二区三区| 波多野结衣爱爱视频| 亚洲第一页在线| 欧美magnet| 国产成人精品免费看在线播放| 高清国产一区二区三区| 日本特级黄色片| 久久亚洲一区二区三区四区五区高| 亚洲国产中文在线二区三区免| 久久久噜噜噜www成人网| 国产精品久久免费看| www.蜜臀av.com| 欧美亚洲另类制服自拍| 99久久亚洲精品蜜臀| 催眠调教后宫乱淫校园| 色屁屁一区二区| av小次郎在线| 狼狼综合久久久久综合网| 免费不卡在线观看| 国产一级二级三级| 亚洲天堂男人的天堂| 99精品视频在线免费播放| 少妇无码av无码专区在线观看 | 精品一区二区三区蜜桃| 国产一级中文字幕| 中文字幕精品—区二区| caoporn成人| wwww.国产| 欧美日韩精品在线视频| free性欧美hd另类精品| 免费h精品视频在线播放| 国产乱子伦视频一区二区三区|