精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

色噜噜狠狠色综合网| 日韩一级黄色av| 亚洲色欲综合一区二区三区| 黄色在线小视频| 国产美女在线观看一区| 欧美精品在线免费播放| 国产性生活毛片| 韩国理伦片久久电影网| 亚洲午夜免费电影| 色狠狠久久av五月综合| 蜜桃av中文字幕| 久久国产日韩欧美精品| 韩国一区二区电影| 国产又粗又硬视频| 都市激情亚洲欧美| 欧美三级欧美一级| 5月婷婷6月丁香| av毛片在线| 国产区在线观看成人精品| 亚洲一区二区三区在线视频| 久久久久99精品成人片我成大片| 欧美freesextv| 日韩禁在线播放| 少妇高潮一69aⅹ| 亚洲欧美在线成人| 性做久久久久久久免费看| 夜夜爽www精品| 免费资源在线观看| 国产成人av电影在线| 国产精品视频永久免费播放 | 亚洲熟妇av乱码在线观看| 国产精品magnet| 久久久www成人免费精品张筱雨| 蜜桃精品成人影片| 99精品中文字幕在线不卡| 欧美日韩国产天堂| 热久久精品免费视频| 国产精品一二三产区| 一区二区在线观看av| 色噜噜狠狠色综合网| 毛片免费在线| 26uuu亚洲综合色| 国产欧美亚洲日本| 午夜美女福利视频| 国产精品资源在线看| 国产日韩视频在线观看| 高潮无码精品色欲av午夜福利| 国产日韩欧美高清免费| 久久免费视频在线观看| 久久亚洲成人av| 国产精品videosex极品| 色偷偷噜噜噜亚洲男人| 亚洲色图第四色| 欧洲激情综合| 在线日韩中文字幕| 久久久久久久毛片| av中文一区| 社区色欧美激情 | jizzjizz日本少妇| 99热国内精品永久免费观看| 久久久国产精品亚洲一区| 久草福利资源在线| 91精品国产成人观看| 久热爱精品视频线路一| www欧美com| 欧美91福利在线观看| 欧美激情视频一区二区| 国产乡下妇女做爰视频| 一区二区毛片| 国产成人av网址| 亚洲中文无码av在线| 蜜臀av一区二区在线免费观看| 我要色综合中文字幕| 在线播放日本| wwwwxxxxx欧美| 好吊色欧美一区二区三区| 婷婷在线免费观看| 久久蜜臀中文字幕| 一区二区三区观看| 欧美另类tv| 日韩欧美中文字幕在线播放| 成人久久久久久久久| 草民电影神马电影一区二区| 7777精品久久久大香线蕉| 久久久久无码精品| 精品国产一区二区三区不卡蜜臂 | 久久要要av| 久久电影一区二区| 在线观看日韩中文字幕| 蜜臀久久99精品久久久久久9| 91网站在线免费观看| 少妇一区二区三区四区| 国产欧美日韩视频一区二区| 干日本少妇视频| 成人免费看视频网站| 91精品国产美女浴室洗澡无遮挡| 理论片大全免费理伦片| 波多野结衣一区| 欧美激情精品久久久久| 天堂网免费视频| 国产精品 日产精品 欧美精品| 狠狠久久综合婷婷不卡| 欧美成人精品一区二区男人看| 午夜私人影院久久久久| 亚洲va在线va天堂va偷拍| 欧美顶级毛片在线播放| yellow中文字幕久久| 中文字幕第15页| 国产精品亚洲第一区在线暖暖韩国| 国产一区在线免费| 超碰公开在线| 欧美午夜精品一区二区蜜桃| 成人做爰www看视频软件| 日韩欧美综合| 日韩av免费在线看| 成人久久久精品国产乱码一区二区| 久久久精品日韩欧美| 成年人网站国产| 成人在线精品| 中文字幕久久久av一区| 五月天激情国产综合婷婷婷| 国产伦精品一区二区三区免费| 欧美综合激情| 国产免费拔擦拔擦8x高清在线人 | 无码av免费一区二区三区试看| 蜜臀一区二区三区精品免费视频 | 97视频在线免费| 另类一区二区三区| 亚洲性无码av在线| 久热这里只有精品6| 床上的激情91.| 中文字幕99| 狠狠久久综合| 夜夜嗨av一区二区三区四区| 性色av免费观看| 91在线看国产| 欧美 日韩 亚洲 一区| 57pao国产一区二区| 精品中文字幕在线观看| 在线观看国产精品视频| 中文字幕第一页久久| 久久黄色免费看| 免费视频亚洲| 日本精品性网站在线观看| 日韩专区一区二区| 日韩欧美精品网站| 国产ts丝袜人妖系列视频| av成人天堂| 久久综合九色99| 婷婷综合六月| 伊人激情综合网| а中文在线天堂| 国产精品久久久一本精品| 中文久久久久久| 久久国产精品成人免费观看的软件| 国产成人在线一区二区| 国产视频网站在线| 欧美军同video69gay| 在线观看黄网址| 国产老妇另类xxxxx| 国产高清不卡无码视频| 国产精品xxxav免费视频| 2019日本中文字幕| 香港一级纯黄大片| 一本大道久久a久久综合| 第一次破处视频| 狠狠色丁香婷婷综合| 只有这里有精品| a级日韩大片| 欧美与欧洲交xxxx免费观看| 国产51人人成人人人人爽色哟哟| 在线观看日韩高清av| 韩国一级黄色录像| 成人免费视频caoporn| www黄色av| 国产精品久久久久久久久妇女| 91在线精品视频| 精品极品在线| 中文字幕亚洲综合久久| www.国产麻豆| 欧美性猛交xxxx偷拍洗澡| 调教驯服丰满美艳麻麻在线视频| 精品午夜一区二区三区在线观看| 肉大捧一出免费观看网站在线播放| 免费看久久久| 成人免费自拍视频| 国产粉嫩在线观看| 中文字幕日韩高清| 欧美 中文字幕| 欧美色视频一区| 麻豆视频在线观看| 日本一区二区成人在线| 中文写幕一区二区三区免费观成熟| 国产精品日本欧美一区二区三区| 亚洲蜜桃在线| 伦理一区二区| 成人免费看吃奶视频网站| 9999在线视频| 日韩中文字幕在线观看| 四虎精品一区二区三区| 欧美日韩高清一区二区不卡 | 成人片在线看| 亚洲欧美激情在线视频| 国产夫绿帽单男3p精品视频| 日本乱人伦一区| 久久久久性色av无码一区二区| 国产丝袜欧美中文另类| 成人免费看片载| 久久超碰97中文字幕| 男人天堂1024| 国产在线不卡| 国产高清精品软男同| 偷拍视屏一区| 国产免费高清一区| 国产美女视频一区二区| 国产精品黄页免费高清在线观看| 国产精品蜜臀| 欧美成人免费全部观看天天性色| 成年网站在线| 日韩电视剧免费观看网站| 国产成人精品免费看视频| 精品视频一区三区九区| 久久精品无码av| 偷拍日韩校园综合在线| 免费在线观看黄视频| 国产精品不卡一区| 老熟妇一区二区| 91日韩精品一区| 超碰caoprom| 大桥未久av一区二区三区中文| 肉色超薄丝袜脚交| 久久国产婷婷国产香蕉| 国产一二三四在线视频| 日本亚洲天堂网| mm1313亚洲国产精品无码试看| 国产精品综合色区在线观看| 青青青在线视频播放| 影音先锋中文字幕一区二区| 国产高清不卡无码视频| 欧美日韩mv| 欧美高清中文字幕| 亚洲视频综合| av免费看网址| 在线国产日韩| 国产特级黄色大片| 亚洲中字在线| 无码人妻丰满熟妇区毛片18| 麻豆91精品| 国产自偷自偷免费一区| 日韩电影在线观看网站| 91淫黄看大片| 九九精品视频在线看| 亚洲图色中文字幕| 国产一二精品视频| 色诱av手机版| 9l国产精品久久久久麻豆| 漂亮人妻被黑人久久精品| 91蜜桃传媒精品久久久一区二区| 免费看黄色aaaaaa 片| 久久色在线视频| 影音先锋男人在线| 成人欧美一区二区三区小说| 国产精品99久久久久久成人| 亚洲精品乱码久久久久久日本蜜臀| 国内偷拍精品视频| 香蕉成人啪国产精品视频综合网| 毛片基地在线观看| 欧美在线观看一区二区| 97成人免费视频| 日韩精品一区二区三区四区视频 | 日本福利视频在线| 午夜在线a亚洲v天堂网2018| 日韩精品一区二区三区不卡 | 97视频资源在线观看| 91精品啪在线观看国产爱臀| 精品一区久久久久久| 国模吧精品视频| 少妇熟女一区二区| 欧美视频二区| 欧美黄色一级片视频| 国产在线精品免费| 青青草视频播放| 国产欧美视频在线观看| 久久国产精品波多野结衣| 懂色av影视一区二区三区| 最近中文字幕在线视频| 日韩午夜av一区| 青青草娱乐在线| 萌白酱国产一区二区| 玛雅亚洲电影| 91精品免费| 视频国产一区| 国产精品videossex国产高清| 国产精品乱看| 午夜性福利视频| 国产欧美日韩麻豆91| 久久午夜鲁丝片午夜精品| 欧美伊人久久久久久午夜久久久久| 精品人妻无码一区二区| 亚洲人成免费电影| 日本大片在线播放| 国产日韩精品一区二区| 天堂综合网久久| 伊人再见免费在线观看高清版| 久久久精品五月天| 国产精品91av| 国产精品视频第一区| 亚洲黄色小说图片| 日韩三级视频在线看| 亚洲成人三级| 欧美在线激情视频| 91成人福利| 亚洲高潮无码久久| 久久99蜜桃精品| 无码国产69精品久久久久同性| 亚洲国产精品一区二区久久恐怖片 | 在线亚洲伦理| 熟妇女人妻丰满少妇中文字幕| 国产亚洲一本大道中文在线| 男人天堂中文字幕| 日韩丝袜情趣美女图片| 在线免费黄色| 国产精品久久久一区| 日本精品影院| 僵尸世界大战2 在线播放| 国产精品18久久久久久久久 | 色777狠狠狠综合伊人| 国产毛片视频网站| 国产不卡视频一区| 久久久精品视频免费观看| 欧美日韩成人在线| 91高清在线| 国产精品第1页| 国产一区二区三区四区二区| 日韩av黄色网址| av动漫一区二区| 日韩乱码人妻无码中文字幕| 精品久久人人做人人爽| 99福利在线| 99精品99久久久久久宅男| 亚洲午夜精品一区 二区 三区| 蜜臀av免费观看| 中文一区一区三区高中清不卡| 波多野结衣av无码| 中文字幕九色91在线| 玖玖精品在线| 欧美日韩一区二区三区电影| 国产在线精品国自产拍免费| 青青草精品在线视频| 欧美一区二区在线免费观看| av毛片在线免费| 国产伦精品一区二区三区视频孕妇 | 五月婷婷激情久久| 中文子幕无线码一区tr| 一本色道久久综合亚洲| 超碰精品一区二区三区乱码| 欧一区二区三区| 久久黄色片视频| 久久久久久亚洲综合影院红桃 | 奇米精品一区二区三区在线观看 | 亚洲free性xxxx护士白浆| 亚洲天堂一区二区三区四区| av天堂一区二区| 欧美日韩一二三四五区| 国产一区电影| 成人国产精品av| 欧美日韩免费观看一区=区三区| 欧美午夜精品一区二区| 欧美日韩国产在线看| 高清福利在线观看| 91日韩在线视频| 最新亚洲激情| 久久久久久久久福利| 日韩一级免费观看| 少妇视频一区| 中文字幕欧美人与畜| 成人黄色777网| 天天干天天插天天射| 久久成人精品视频| 亚洲亚洲免费| 特种兵之深入敌后| 成人福利av| 日本中文不卡| 国产一区不卡视频| 毛片毛片女人毛片毛片| 色妞欧美日韩在线| 国产精品色呦| 中文字幕第38页| 天天色综合天天| 欧美黑人激情| 欧美极品jizzhd欧美| 韩国v欧美v亚洲v日本v| 亚洲第一精品在线观看 | 色www亚洲国产阿娇yao| 亚洲成人aaa| 久久亚洲人体| 精品99在线视频| 亚洲精品一二三| 国产玉足榨精视频在线观看| 99久久国产免费免费|