Pergunta

No Oracle 10g, como você converter SYS_GUID () para varchar? Eu estou tentando algo como:

select USER_GUID from user where email = 'user@example.com'

Que retorna o byte RAW []. É possível utilizar uma função para converter o RAW para VARCHAR2 na instrução SQL?

Foi útil?

Solução

Não se esqueça de uso HEXTORAW(varchar2) quando se compara esse valor para as colunas RAW.

Não há convesion implícita de VARCHAR2 para RAW. Isso significa que esta cláusula:

WHERE raw_column = :varchar_value

será impicitly convertido em:

WHERE RAWTOHEX(raw_column) = :varchar_value

, tornando assim os índices de raw_column inutilizável.

Use:

WHERE raw_column = HEXTORAW(:varchar_value)

em seu lugar.

Outras dicas

Use RAWTOHEX (USER_GUID).

select RAWTOHEX(USER_GUID) from user where email = 'user@example.com'

Por favor, não mod-1 se eu estiver errado. Vou a partir da memória de modo que este um aviso para verificar.

TO_CHAR é realmente diferente entre SQL e PL / SQL.

No SQL TO_CHAR não tomar uma matéria como você descobriu.

Em PL / SQL TO_CHAR terá um valor bruto.

Então, se você estiver em um procedimento de qualquer maneira, às vezes é mais fácil de usar uma variável, mas se você está apenas usando SQL, vai com as outras respostas aqui.

select CAST (USER_GUID AS VARCHAR2(100)) from user where email = 'user@example.com'

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top