在Oracle數據庫中實現SqlServer數據庫中的NewID()函數功能


因為我是使用.NET C#進行開發,所以平時會使用SqlServer的NewID()函數來生成數據的ID。

在C#語言中也可以很方便地使用Guid.NewGuid().ToString()方法來生成格式一樣的ID。

現在數據庫換成了Oracle,沒有類似的函數可以方便地調用,但是Oracle中自帶一個函數SYS_GUID()。

返回的是一串二進制的數據,可以通過CAST轉換成VARCHAR類型后就是類似SqlServer中NewID()方法生成的ID的樣子了。

我們只要再做下手腳,往里面插入幾個'-'符號就可以了~

做成一個函數吧,這樣就方便調用了:

CREATE OR REPLACE FUNCTION NEWID
RETURN VARCHAR2 IS
    GUID VARCHAR2(32);
BEGIN
    GUID:=SYS_GUID();
    RETURN '{'
        ||SUBSTR(GUID,1,8)
        ||'-'||SUBSTR(GUID,9,4)
        ||'-'||SUBSTR(GUID,13,4)
        ||'-'||SUBSTR(GUID,17,4)
        ||'-'||SUBSTR(GUID,21,12)
        ||'}';
END NEWID;

然后就可以像在SqlServer中一樣用了:

SELECT NEWID() AS ID FROM DUAL
--返回結果是類似這樣的值:{1B869DEE-BF1A-0D8C-E050-BD0A9E806700}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM