欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle的SYS_GUID()函數(shù)用法及說明

 更新時間:2023年07月29日 15:27:57   作者:柚子貓嶼  
這篇文章主要介紹了Oracle的SYS_GUID()函數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

前言

今天在代碼中發(fā)現(xiàn)了Oracle的SYS_GUID() 函數(shù)作為主鍵的用法,于是來記錄下~

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、函數(shù)解釋

SYS_GUID (),是Oracle 8i 后提供的函數(shù)。

SYS_GUID產(chǎn)生并返回一個全球唯一的標(biāo)識符(原始值)由16個字節(jié)組成。

在大多數(shù)平臺,生成的標(biāo)識符由主機標(biāo)符,執(zhí)行函數(shù)的進程或者線程標(biāo)識符,和進程或線程的一個非重復(fù)的值(字節(jié)序列)。

二、查看方式

select sys_guid() from dual;

返回:長度為32位的字符串,包括0-9和大寫A-F。

但是你會發(fā)現(xiàn)此時查出的是亂碼,那該怎么辦呢?

亂碼

亂碼就要使用rawtohex()函數(shù)方法啦~

select rawtohex(sys_guid()) from dual;

正常

吶!現(xiàn)在就展示正常了。

三、使用場景

1.建表時作為主鍵

如下(示例):

create table student
(
student_id raw(16) default sys_guid() primary key,
student_name varchar2(100) not null
);

2.新增數(shù)據(jù)時填充主鍵

如下(示例):

insert into student(student_id, student_name)
values (SYS_GUID(), '小明');

四、SYS_GUID作為主鍵的優(yōu)缺點

1.優(yōu)點

(1)序列從起點開始進行自增,但只能保持在單個實例里唯一。

因此不適合用作并行或遠程環(huán)境的主鍵,因為各自環(huán)境里的序列可能會生成相同的數(shù)字,從而導(dǎo)致沖突的發(fā)生。

而SYS_GUID會保證它創(chuàng)建的標(biāo)識符在每個數(shù)據(jù)庫里都是唯一的。

(2)序列必須是DML陳述式的一部分,因此它需要一個到數(shù)據(jù)庫的往返過程(否則它就不能保證其值是唯一的)。

SYS_GUID不需要對數(shù)據(jù)庫進行訪問的時間戳和機器標(biāo)識符,這就節(jié)省了查詢的消耗。

2.缺點

(1)從空間上,相同條件下,使用SYS_GUID做主鍵比用Sequence做主鍵,表多消耗了空間。

(2)用SYS_GUID使用時相對不太方便,必須(手動)輸入或者通過腳本來填充相應(yīng)的字段。

總結(jié)

總的來說,還是利大于弊啦~

  • hextoraw():十六進制字符串轉(zhuǎn)換為raw;
  • rawtohex():將raw串轉(zhuǎn)換為十六進制;
  • lower():將大寫轉(zhuǎn)為小寫;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論