当前位置:  开发笔记 > 前端 > 正文

Oracle SYS_GUID不会更改

如何解决《OracleSYS_GUID不会更改》经验,为你挑选了2个好方法。

我有一个Oracle项目,非常适合使用GUID作为密钥.我找到了以下代码段

SET SERVEROUTPUT ON
BEGIN
FOR indx IN 1 .. 5
LOOP
DBMS_OUTPUT.put_line ( SYS_GUID );
END LOOP;
END;
/

来自http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html

当我在我的数据库上运行它(我在版本10g和版本11上尝试它)时,我得到输出

64FE4083D6BA7CB4E0400F0A0E0A18B0
64FE4083D6BB7CB4E0400F0A0E0A18B0
64FE4083D6BC7CB4E0400F0A0E0A18B0
64FE4083D6BD7CB4E0400F0A0E0A18B0
64FE4083D6BE7CB4E0400F0A0E0A18B0

即价值永远不会改变!有什么我必须做的事情来设置它按预期工作?

编辑:我不是很观察 - GUID正在改变,但看起来我正在遭受上面链接所讨论的顺序GUID问题.



1> Anonymous..:

似乎没问题.从描述:

SYS_GUID生成并返回由16个字节组成的全局唯一标识符(RAW值).在大多数平台上,生成的标识符由主机标识符,调用该函数的进程或线程的进程或线程标识符以及该进程或线程的非重复值(字节序列)组成.

从你的例子:

64FE4083D6BA7CB4E0400F0A0E0A18B0
64FE4083D6BB7CB4E0400F0A0E0A18B0
64FE4083D6BC7CB4E0400F0A0E0A18B0
64FE4083D6BD7CB4E0400F0A0E0A18B0
64FE4083D6BE7CB4E0400F0A0E0A18B0

没有人提到有关这些GUID值的分布的任何信息.他们应该是非重复的,他们是.除非你每次都得到完全相同的输出.



2> cagcowboy..:

价值确实在变化......

           *
64FE4083D6BA7CB4E0400F0A0E0A18B0
64FE4083D6BB7CB4E0400F0A0E0A18B0
64FE4083D6BC7CB4E0400F0A0E0A18B0
64FE4083D6BD7CB4E0400F0A0E0A18B0
64FE4083D6BE7CB4E0400F0A0E0A18B0
           *

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有