• ベストアンサー

オラクルのデータ型について

オラクルのデータ型について教えてください。 ものすごく基本的な質問かもしれませんが、今後のことを考えて質問させていただきます。 文字列の型の"CHAR"と"VARCHAR2"についてです。 "CHAR"は固定長で2000バイト、 "VARCHAR2"は可変長で4000バイトとマニュアル等には記載されていますが、 いまいちピンときません。 そこで、それぞれの長所、短所。どのような時にどちらを使用したらいいのか 等をなるべく詳しく教えてもらえないでしょうか? 宜しくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ST202
  • ベストアンサー率100% (1/1)
回答No.2

データ型の詳細が載っているホームページのことではないのですが、参考までに。 固定長、可変長以外にも、比較した時の比較のされ方も異なってきます。 CHAR型はスペース埋め込み比較、VARCHAR2は非スペース埋め込み比較を行います。 具体的にいうと、MOJI CHAR(5)と宣言した列に'ABC 'を入れたとします。 CHAR型の場合、SQLのWHERE句でMOJI='ABC'と比較した場合、スペース埋め込み比較をしますので一致しますが、VARCHAR2型は、非スペース埋め込み比較を行うのでMOJI='ABC 'の様に列に入力した通りに比較しなければ該当しないはずです。 最近ORACLEから遠ざかっているもので^^; CHAR型は、「今後のバージョンではサポートされない可能性があるので、使用することを推奨ません」と、かなり昔からマニュアルに記述していますので、新規に作成するテーブルでしたら、CHAR型の使用は避けたほうが良いと思います。

tomoyui
質問者

お礼

やはり"char"は避けた方がいいのですね。 これから"VARCHAR2"を使うようにしたいと思います。 ありがとうございました

その他の回答 (1)

  • arara0123
  • ベストアンサー率47% (8/17)
回答No.1

【CHAR】固定長 サイズ(長さ)が一定で、入力した値がその長さに足りない場合は、 スペースで不足分が補われます。 あらかじめ、入力される文字列の長さが決まっている場合はこちらを使用します。 (その一定の長さで定義します。) 例)社員コードなど 【VARCHAR2】 可変長 サイズ(長さ)が決まっていない(一定でない)情報に使用します。 この場合は、CHARと違って入力された文字列の長さが 定義した長さより短いデータであっても空白が補われないため、 資源(ディスク)の有効利用ができるメリットがあげられます。 (入力したいデータの最大長maxsizeで定義します。) 例)住所など 概要ではありますがご参考に

tomoyui
質問者

補足

ありがとうございます。 "CHAR","VARCHAR2"についてはわかりました。 ところで、Oracleのデータ型が表のような形で掲示してあるホームページって ないですか?(詳しくデータ型について説明してあるHP)出来れば教えてください。宜しくお願いします。

関連するQ&A