因为我是使用.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}
时间: 2024-12-23 10:32:29