我想知道 Oracle 的 SYS_GUID() 函数是否返回符合 RFC 4122 的 UUID。例如:
SQL> select sys_guid() from dual;
SYS_GUID()
--------------------------------
A6C1BD5167C366C6E04400144FD25BA0
我知道,SYS_GUID() 返回一个 16 字节的 RAW 数据类型。Oracle 使用 RAWTOHEX() 和可能的 TO_CHAR() 打印出上述 ID。将其解释为符合 UUID 的字符串格式是否正确,例如:
A6C1BD51-67C3-66C6-E044-00144FD25BA0
我认为它不符合 RFC 4122 标准,因为定义说,有效的 UUID 必须在 UUID 本身内命名 UUID-Version。
符合 RFC 4122 的 UUID(版本 3)的语法:
xxxxxxxx-xxxx-3xxx-xxxx-xxxxxxxxxxxx