sys_guid ()를 Varchar로 어떻게 변환합니까?
문제
Oracle 10G에서 sys_guid ()를 Varchar로 어떻게 변환합니까? 나는 다음과 같은 것을 시도하고 있습니다.
select USER_GUID from user where email = 'user@example.com'
원시 바이트를 반환합니다 []. SQL 문에서 RAW를 VARCHAR2로 변환하기 위해 함수를 사용할 수 있습니까?
해결책
사용하는 것을 잊지 마십시오 HEXTORAW(varchar2)
이 값을 RAW
열.
암시 적 투구는 없습니다 VARCHAR2
에게 RAW
. 그것은이 조항을 의미합니다.
WHERE raw_column = :varchar_value
불순하게 변환됩니다.
WHERE RAWTOHEX(raw_column) = :varchar_value
, 따라서 인덱스를 만듭니다 raw_column
쓸 수 없는.
사용:
WHERE raw_column = HEXTORAW(:varchar_value)
대신에.
다른 팁
RawToHex (user_guid)를 사용하십시오.
select RAWTOHEX(USER_GUID) from user where email = 'user@example.com'
내가 틀렸다면 Mod-1하지 마십시오. 나는 메모리에서 간다. 그래서 이것은 검증 할 면책 조항입니다.
TO_CHAR은 실제로 SQL과 PL/SQL간에 다릅니다.
SQL에서 TO_CHAR은 알 수 있듯이 원료를 사용하지 않습니다.
pl/sql to_char에서는 원시 값을 취합니다.
따라서 어쨌든 절차에 빠지면 변수를 사용하는 것이 더 쉽지만 SQL을 사용하는 경우 다른 답변을 사용하십시오.
select CAST (USER_GUID AS VARCHAR2(100)) from user where email = 'user@example.com'
제휴하지 않습니다 StackOverflow