- ベストアンサー
16進数の指定の仕方
HEXTORAWを使って「817c」を-に変換したいのですが 指定の仕方が間違っているとエラーが出てしまいます。 HEXTORAW('817C')とすると 817Cと表示されます。。。 HEXTORAW()内の指定の仕方はどうすればよいのでしょうか? どなたかご教授を!! お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
HEXTORAW('817C') で使用方法はあっています。 ただ、817C は RAWなので本来は表示できません。 817C が表示されるのは、使用されている FEP が変換しているものです。 やりたいことは、以下の記述でも可能です。 UTL_RAW.CAST_TO_VARCHAR2(HEXTORAW('817C')) 同等な関数で CHR がありますが、こちらは入力が数値ですので 別途 非標準の16進10進変換関数が必要です。 面倒になりますので、こちらは省略します。
その他の回答 (1)
- MZ-80B
- ベストアンサー率56% (46/81)
RAW とはバイナリ・データ(バイト列)です。 CHAR, VARCHAR2 型はクライアントの漢字コード(キャラクタセット)により 自動で漢字(キャラクタセット)変換を行いますが、 RAW はバイナリデータですので変換を行いません。 '817c'は Shift_JISでは (―)に該当しますが、EUC-JPでは異なる文字に該当し文字化けになります。 すなわち、文字データをキャラクタコード('817c'など) や RAW で取り扱うということはマルチプラットフォームに対応できないということになってしまいます。 オンラインマニュアルをもっていないのでしたら OTN で入手することをお勧めします。 参考URL: SQLリファレンス 「Oracle SQL の基本要素 データ型」(10g 用マニュアル)
お礼
できました!! ありがとうございます。 ちなみに RAWというのはなんでしょうか? スミマセン。教えていただけると幸いです。