Подтвердить что ты не робот

Как преобразовать SYS_GUID() в varchar?

В oracle 10g, как вы преобразовываете SYS_GUID() в varchar? Я пытаюсь что-то вроде:

select USER_GUID from user where email = '[email protected]'

Что возвращает бит RAW []. Можно ли использовать функцию для преобразования RAW в VARCHAR2 в инструкции SQL?

4b9b3361

Ответ 1

Не забывайте использовать HEXTORAW(varchar2) при сравнении этого значения с столбцами RAW.

Нет неявной перестановки от VARCHAR2 до RAW. Это означает, что этот раздел:

WHERE raw_column = :varchar_value

будет явно преобразован в:

WHERE RAWTOHEX(raw_column) = :varchar_value

что делает невозможным использование индексов на raw_column.

Использование:

WHERE raw_column = HEXTORAW(:varchar_value)

вместо.

Ответ 2

Используйте RAWTOHEX (USER_GUID).

Ответ 4

Пожалуйста, не мо-1, если я ошибаюсь. Я перехожу из памяти, поэтому это выражение об отказе от ответственности.

TO_CHAR на самом деле отличается между SQL и PL/SQL.

В SQL TO_CHAR не берется сырьевое, как вы узнали.

В PL/SQL To_CHAR примет исходное значение.

Итак, если вы все равно работаете, иногда проще использовать переменную, но если вы просто используете SQL, переходите к другим ответам здесь.