2

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

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

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

查询如下:

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

请指教。

4

3 回答 3

6

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

SELECT TO_NUMBER(prod, RPAD('x', 32, 'x'))
FROM PRODS;
于 2013-10-15T13:01:12.793 回答
1

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

SELECT CONV('MD5', 16, 10)
FROM PRODS;
于 2013-10-15T12:50:43.107 回答
1

GUID 并不真正适合以数字形式表示。但是,如果需要,您可以这样做。

这个问题之前已经在这篇文章中问过

于 2013-10-15T12:55:08.433 回答