在Oracle 10g中,如何将SYS_GUID()转换为varchar?我正在尝试类似以下的内容:
select USER_GUID from user where email = 'user@example.com'
这个函数返回原始的byte[]字节数组。在SQL语句中是否有可能使用一个函数将RAW转换为VARCHAR2?
在比较此值与 RAW
列时,请不要忘记使用 HEXTORAW(varchar2)
。
VARCHAR2
到 RAW
不具有隐式转换关系。这意味着该语句:
WHERE raw_column = :varchar_value
将被隐式转换为:
WHERE RAWTOHEX(raw_column) = :varchar_value
因此,对raw_column
进行索引变得无法使用。
应该使用:
WHERE raw_column = HEXTORAW(:varchar_value)
改为使用 "instead"。
使用RAWTOHEX(USER_GUID)函数。
select RAWTOHEX(USER_GUID) from user where email = 'user@example.com'
从用户表中查询Email为'user@example.com'的用户的USER_GUID,并将其转换成长度为100的VARCHAR2类型