15

Oracle 10g では、SYS_GUID() を varchar にどのように変換しますか? 私は次のようなことを試みています:

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

RAW バイト [] を返します。関数を使用して、SQL ステートメントで RAW を VARCHAR2 に変換することは可能ですか?

4

5 に答える 5

21

この値を列HEXTORAW(varchar2)と比較するときに使用することを忘れないでください。RAW

VARCHAR2からへの暗黙の変換はありませんRAW。つまり、この句は次のとおりです。

WHERE raw_column = :varchar_value

暗黙的に次のように変換されます:

WHERE RAWTOHEX(raw_column) = :varchar_value

、したがって、使用できないインデックスを作成しますraw_column

使用する:

WHERE raw_column = HEXTORAW(:varchar_value)

代わりは。

于 2009-03-02T18:55:44.940 に答える
4

RAWTOHEX(USER_GUID) を使用します。

于 2009-03-02T18:51:15.793 に答える
3
select RAWTOHEX(USER_GUID) from user where email = 'user@example.com'
于 2010-03-04T01:06:45.853 に答える
1

私が間違っている場合は mod-1 しないでください。私は記憶から行っているので、これは確認するための免責事項です。

TO_CHAR は、実際には SQL と PL/SQL で異なります。

あなたが見つけたように、SQL TO_CHAR は raw を取りません。

PL/SQL では、To_CHAR は生の値を取ります。

とにかく手順を使用している場合は、変数を使用する方が簡単な場合がありますが、SQL を使用しているだけの場合は、ここで他の回答を使用してください。

于 2009-03-02T19:00:51.243 に答える