2009-03-02 26 views

Respuesta

17

No olvide utilizar HEXTORAW(varchar2) al comparar este valor con las columnas RAW.

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

WHERE raw_column = :varchar_value 

se convertirá impicitly en:

WHERE RAWTOHEX(raw_column) = :varchar_value 

, haciendo así índices en raw_column inutilizable.

Uso:

WHERE raw_column = HEXTORAW(:varchar_value) 

lugar.

4

Use RAWTOHEX (USER_GUID).

1

Por favor, no mod-1 si estoy equivocado. Me voy de memoria así que esto es un descargo de responsabilidad para verificar.

TO_CHAR es realmente diferente entre SQL y PL/SQL.

En SQL TO_CHAR no se procesa como se ha descubierto.

En PL/SQL To_CHAR tomará un valor sin formato.

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

+2

TO_CHAR PL/SQL de() es, de hecho, SYS.STANDARD.TO_CHAR(), que se puede utilizar en SQL también: SELECT SYS.STANDARD.TO_CHAR (SYS_GUID()) de la doble. Por supuesto, esto implica el cambio de contexto SQL/PLSQL y el impacto de rendimiento adecuado. – Quassnoi

+0

Dios mío, eso es genial. Nunca lo contextualicé así. mod + 1.1 –

Cuestiones relacionadas