dポイントプレゼントキャンペーン実施中!

HEXTORAWを使って「817c」を-に変換したいのですが
指定の仕方が間違っているとエラーが出てしまいます。

HEXTORAW('817C')とすると
817Cと表示されます。。。

HEXTORAW()内の指定の仕方はどうすればよいのでしょうか?

どなたかご教授を!!
お願いします。

A 回答 (2件)

HEXTORAW('817C') で使用方法はあっています。


ただ、817C は RAWなので本来は表示できません。
817C が表示されるのは、使用されている FEP が変換しているものです。

やりたいことは、以下の記述でも可能です。
UTL_RAW.CAST_TO_VARCHAR2(HEXTORAW('817C'))

同等な関数で CHR がありますが、こちらは入力が数値ですので
別途 非標準の16進10進変換関数が必要です。
面倒になりますので、こちらは省略します。
    • good
    • 1
この回答へのお礼

できました!!
ありがとうございます。

ちなみに
RAWというのはなんでしょうか?
スミマセン。教えていただけると幸いです。

お礼日時:2005/07/21 18:21

RAW とはバイナリ・データ(バイト列)です。


CHAR, VARCHAR2 型はクライアントの漢字コード(キャラクタセット)により
自動で漢字(キャラクタセット)変換を行いますが、 RAW はバイナリデータですので変換を行いません。
'817c'は Shift_JISでは (―)に該当しますが、EUC-JPでは異なる文字に該当し文字化けになります。
すなわち、文字データをキャラクタコード('817c'など) や RAW で取り扱うということはマルチプラットフォームに対応できないということになってしまいます。

オンラインマニュアルをもっていないのでしたら OTN で入手することをお勧めします。
参考URL: SQLリファレンス 「Oracle SQL の基本要素 データ型」(10g 用マニュアル)

参考URL:http://otn.oracle.co.jp/document/products/oracle …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す