2009-03-02 21 views

答えて

17

この値を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) 

4

RAWTOHEX(USER_GUID)を使用してください。

1

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

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

SQL TO_CHARでは、あなたが知っているように生データを取得しません。

PL/SQLの場合、To_CHARは生の値をとります。

とにかくプロシージャを使用している場合は、変数を使用する方が簡単ですが、SQLだけを使用している場合は、ここで他の回答を参照してください。 SYS.STANDARD.TO_CHARを選択デュアルFROM(()SYS_GUID):

+2

PL/SQLのTO_CHARは()あなたもSQLで使用できるファクトSYS.STANDARD.TO_CHAR()、です。もちろん、これはSQL/PLSQLのコンテキスト切り替えと適切なパフォーマンスへの影響を意味します。 – Quassnoi

+0

OMG、それはとてもクールです。私はそれを文脈化したことはありません。 mod + 1.1 –

関連する問題