从 guid 列获取数值的最佳方法是什么?
我正在尝试这条线,但我得到了:
ORA-00904: "HASHBYTES": invalid identifier
00904. 00000 - "%s: invalid identifier"
查询如下:
SELECT HASHBYTES('MD5',CAST(prod AS varchar2(30)))
FROM PRODS;
请指教。
从 guid 列获取数值的最佳方法是什么?
我正在尝试这条线,但我得到了:
ORA-00904: "HASHBYTES": invalid identifier
00904. 00000 - "%s: invalid identifier"
查询如下:
SELECT HASHBYTES('MD5',CAST(prod AS varchar2(30)))
FROM PRODS;
请指教。
Oracle 没有这个HASHBYTES
功能。您可以使用 将十六进制转换为十进制,但格式字符串中TO_NUMBER(hex-string, 'xx')
必须有足够的字符来覆盖输入值。x
如果是 GUID,则为 32 个x
字符:
SELECT TO_NUMBER(prod, RPAD('x', 32, 'x'))
FROM PRODS;
这会将 MD5 哈希(十六进制)转换为十进制数
SELECT CONV('MD5', 16, 10)
FROM PRODS;
GUID 并不真正适合以数字形式表示。但是,如果需要,您可以这样做。
这个问题之前已经在这篇文章中问过