oracle 10gでは、どのようにしてSYS_GUID()をvarcharに変換しますか?私は次のようなものを試しています:SYS_GUID()をvarcharに変換するにはどうすればよいですか?
select USER_GUID from user where email = '[email protected]'
これは、RAWバイト[]を返します。 SQL文でRAWをVARCHAR2に変換する関数を使用できますか?
oracle 10gでは、どのようにしてSYS_GUID()をvarcharに変換しますか?私は次のようなものを試しています:SYS_GUID()をvarcharに変換するにはどうすればよいですか?
select USER_GUID from user where email = '[email protected]'
これは、RAWバイト[]を返します。 SQL文でRAWをVARCHAR2に変換する関数を使用できますか?
この値をRAW
の列と比較するときは、HEXTORAW(varchar2)
を使用することを忘れないでください。
VARCHAR2
からRAW
まで暗黙のconvesionはありません。従って使用不可能raw_column
にインデックスを作り、
WHERE RAWTOHEX(raw_column) = :varchar_value
:
WHERE raw_column = :varchar_value
impicitlyに変換されます:それは、この句があることを意味します。
使用:代わりに
WHERE raw_column = HEXTORAW(:varchar_value)
。
RAWTOHEX(USER_GUID)を使用してください。
私が間違っている場合は、mod-1をしないでください。私は記憶から行くので、これは免責事項を確認する。
TO_CHARは、実際にはSQLとPL/SQLで異なります。
SQL TO_CHARでは、あなたが知っているように生データを取得しません。
PL/SQLの場合、To_CHARは生の値をとります。
とにかくプロシージャを使用している場合は、変数を使用する方が簡単ですが、SQLだけを使用している場合は、ここで他の回答を参照してください。 SYS.STANDARD.TO_CHARを選択デュアルFROM(()SYS_GUID):
select RAWTOHEX(USER_GUID) from user where email = '[email protected]'
PL/SQLのTO_CHARは()あなたもSQLで使用できるファクトSYS.STANDARD.TO_CHAR()、です。もちろん、これはSQL/PLSQLのコンテキスト切り替えと適切なパフォーマンスへの影響を意味します。 – Quassnoi
OMG、それはとてもクールです。私はそれを文脈化したことはありません。 mod + 1.1 –