Pregunta

En Oracle 10g, ¿cómo convertir SYS_GUID () a varchar? Estoy intentando algo como:

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

Que devuelve el byte RAW []. ¿Es posible usar una función para convertir RAW a VARCHAR2 en la declaración SQL?

¿Fue útil?

Solución

No olvide utilizar HEXTORAW (varchar2) cuando compare este valor con las columnas RAW .

No hay una conversión implícita de VARCHAR2 a RAW . Eso significa que esta cláusula:

WHERE raw_column = :varchar_value

se convertirá impíamente en:

WHERE RAWTOHEX(raw_column) = :varchar_value

, por lo tanto, los índices en raw_column son inutilizables.

Uso:

WHERE raw_column = HEXTORAW(:varchar_value)

en su lugar.

Otros consejos

Use RAWTOHEX (USER_GUID).

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

Por favor, no mod-1 si estoy equivocado. Me voy de memoria, así que esta es una exención de responsabilidad para verificar.

TO_CHAR es realmente diferente entre SQL y PL / SQL.

En SQL TO_CHAR no se procesa como lo has descubierto.

En PL / SQL To_CHAR tomará un valor en bruto.

Entonces, si estás en un procedimiento, a veces es más fácil usar una variable, pero si solo estás usando SQL, ve con las otras respuestas aquí.

seleccione CAST (USER_GUID AS VARCHAR2 (100)) del usuario donde correo electrónico = 'usuario@ejemplo.com'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top