从guid列获取数值的最佳方法是什么?
我正在尝试这条线,但我得到了:
ORA-00904: "HASHBYTES": invalid identifier
00904. 00000 - "%s: invalid identifier"
查询如下:
SELECT HASHBYTES('MD5',CAST(prod AS varchar2(30)))
FROM PRODS;
请建议。
答案 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帖子
中提出过