문제

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'

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top