SELECT SYS_GUID() AS idPoints FROM DUAL數據庫
Oracle8i引入了SYS_GUID這個概念,它同Oracle管理員所使用的傳統的序列(sequence)相比具備諸多優點。一個序列生成器只是簡單地建立從給定的起點開始的一系列整數值,並且它被用在選擇陳述式的時候自動地遞增該系列。htm
序列生成器所生成的數字只能保證在單個實例裏是惟一的,這就不適合將它用做並行或者遠程環境裏的主關鍵字,由於各自環境裏的序列可能會生成相同的數字,從而致使衝突的發生。SYS_GUID會保證它建立的標識符在每一個數據庫裏都是惟一的。對象
序列必須是DML陳述式的一部分,所以它須要一個到數據庫的往返過程(不然它就不能保證其值是惟一的)。SYS_GUID源自不須要對數據庫進行訪問的時間戳和機器標識符,這就節省了查詢的消耗。get
不少應用程序都依靠序列生成器來建立數據行的主關鍵字,這些數據行沒有一個明顯的主值,這也就是說,在這樣的數據集裏一條記錄的建立就會讓數據列發生改變。所以,管理員可能會對在表格中將SYS_GUID用做主關鍵字而不使用序列數感興趣。這在對象在不一樣機器的不一樣數據庫裏生成以及須要在後來合併到一塊兒的狀況下頗有用。程序
可是,SYS_GUID所生成的值是一個16個字節的原始值。序列所生成的整數不會使用16字節(的值),除非它達到了10的30次方(每一個字節兩個16進制顯示位),並且數字是至關獨特的:並行