基本

[Oracle] データ型

Oracleのデータ型

Oracelで指定できる主なデータ型は以下表のとおりです。

データ
NUMBER 整数、小数
CHAR 最大2000バイトまたは2000文字の固定長文字列
VARCHAR2 最大2000バイトまたは2000文字の可変長文字列
BLOB 最大128テラバイトのバイナリデータ
CLOB 最大128テラバイトの文字列
DATE 日付
TIMESTAMP 小数秒を含む日付

NUMBER型

最大38桁の整数および浮動小数を含む数値を格納できます。

定義する際は、以下の形式で定義します。

NUMBER(桁数, [小数点以下桁数])

※[]は省略可

NUMBER(5, 2)とした場合、整数部3桁 + 小数部2桁の合わせて5桁である点に注意が必要です。

桁数は小数部を含めた数値全体の桁数を指定するようにしてください。

 

CHAR型

文字列を扱う際に使用します。

格納したデータは固定長文字列として扱われます。

定義する際は、以下の形式で定義します。

CHAR(文字数)

CHAR(5)の列に対し、「ABC」という3バイトの文字列を格納した場合、「ABC  」という5バイトで保存されます。

そのため、検索する際にWHERE句で「列 = ‘ABC’」と指定してもヒットしないので注意してください。

 

VARCHAR2型

文字列を扱う際に使用します。

格納したデータは可変長文字列として扱われます。

定義する際は、以下の形式で定義します。

VARCHAR2(文字数)

VARCHAR2(5)の列に対し、「ABC」という3バイトの文字列を格納した場合、「ABC」という3バイトで保存されます。

VARCHAR2の場合は、CHARのように有効桁数に満たない場合に自動的に有効桁数になるように空白埋めされることはありません。

 

BLOB型

画像や音声などのバイナリデータを扱う際に使用します。

定義する際は、以下の形式で定義します。

BLOB

BLOB型は有効桁数の指定は必要ありません。

 

CLOB型

CHARやVARCHAR2では対応しきれないような膨大なテキストデータを扱う際に使用します。

定義する際は、以下の形式で定義します。

CLOB

CLOB型は有効桁数の指定は必要ありません。

 

DATE型

日付や時刻を扱う際に使用します。

DATE型で指定した列には、「年月日時分秒」の情報を格納することができます。

定義する際は、以下の形式で定義します。

DATE

DATE型は有効桁数の指定は必要ありません。

 

TIMESTAMP型

日付や時刻を扱う際に使用します。

TIMESTAMP型で指定した列には、「年月日時分秒」に加え、小数秒の情報も格納することができます。

定義する際は、以下の形式で定義します。

TIMESTAMP

TIMESTAMP型は有効桁数の指定は必要ありません。
 
 
以上が、Oracleの主なデータ型についての説明となります。
ぜひ参考にしてみてください。