首页 > 数据库技术 > 详细

在Oracle数据库中实现SqlServer数据库中的NewID()函数功能

时间:2015-07-23 17:28:09      阅读:262      评论:0      收藏:0      [点我收藏+]

因为我是使用.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}

 

在Oracle数据库中实现SqlServer数据库中的NewID()函数功能

原文:http://www.cnblogs.com/diuleiloumou/p/4670773.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!