将guid转换为数值

时间:2013-10-15 12:48:54

标签: sql database oracle primary-key guid

从guid列获取数值的最佳方法是什么?

我正在尝试这条线,但我得到了:

ORA-00904: "HASHBYTES": invalid identifier
00904. 00000 -  "%s: invalid identifier"

查询如下:

SELECT HASHBYTES('MD5',CAST(prod AS varchar2(30)))
FROM PRODS;

请建议。

3 个答案:

答案 0 :(得分:6)

Oracle没有HASHBYTES功能。您可以使用TO_NUMBER(hex-string, 'xx')将十六进制转换为十进制,但您的格式字符串中必须包含足够x个字符才能覆盖输入值。对于GUID,这是32 x个字符:

SELECT TO_NUMBER(prod, RPAD('x', 32, 'x'))
FROM PRODS;

答案 1 :(得分:1)

这会将MD5哈希(十六进制)转换为十进制数

SELECT CONV('MD5', 16, 10)
FROM PRODS;

答案 2 :(得分:1)

GUID并不能真正成为数字代表。 但是,如果需要,可以这样做。

此问题之前曾在this帖子

中提出过
相关问题