この章では、Oracleで認識され、SQLで使用可能なデータ型について説明します。
この章では、次の項目について説明します。
データ型は、特定のタイプの情報またはデータの分類です。Oracleが処理する値は、それぞれデータ型を持ちます。値のデータ型は、一定のプロパティをその値に対応付けます。このプロパティに応じて、Oracleは、あるデータ型の値を別のデータ型の値と区別して扱います。
次に、Oracleが認識するデータ型を示します。
{ CHARACTER [VARYING] (size)
| { CHAR | NCHAR } VARYING (size)
| VARCHAR (size)
| NATIONAL { CHARACTER | CHAR }
[VARYING] (size)
| { NUMERIC | DECIMAL | DEC }
[ (precision [, scale ]) ]
| { INTEGER | INT | SMALLINT }
| FLOAT [ (size) ]
| DOUBLE PRECISION
| REAL
}
{ character_datatypes
| number_datatypes
| long_and_raw_datatypes
| datetime_datatypes
| large_object_datatypes
| rowid_datatypes
}
{ any_types
| XML_types
| spatial_types
| media_types
| expression_filter_type
}
ユーザー定義データ型は、Oracle組込みデータ型と、その他のユーザー定義データ型を使用して、アプリケーション内のデータの構造と動作をモデル化します。
|
参照: 『Oracle Database SQL言語リファレンス』の「データ型」を参照してください。 |
この項では、Oracle組込みデータ型の種類を示します。
{ CHAR [ (size [ BYTE | CHAR ]) ]
| VARCHAR2 (size [ BYTE | CHAR ])
| NCHAR [ (size) ]
| NVARCHAR2 (size)
}
{ DATE
| TIMESTAMP [ (fractional_seconds_precision) ]
[ WITH [ LOCAL ] TIME ZONE ])
| INTERVAL YEAR [ (year_precision) ] TO MONTH
| INTERVAL DAY [ (day_precision) ] TO SECOND
[ (fractional_seconds_precision) ]
}
{ BLOB | CLOB | NCLOB | BFILE }
{ LONG | LONG RAW | RAW (size) }
{ NUMBER [ (precision [, scale ]) ]
| FLOAT [ (precision) ]
| BINARY_FLOAT
| BINARY_DOUBLE
}
{ ROWID | UROWID [ (size) ] }
データ型のコードは、Oracle Databaseが内部的に使用します。DUMPファンクションによって、列またはオブジェクト属性のデータ型コードが戻されます。
表6-1 組込みデータ型の概要
| コード | データ型 | 説明 |
|---|---|---|
|
1 |
|
最大長が
|
|
1 |
|
最大長が |
|
2 |
|
精度 |
|
2 |
|
精度 |
|
8 |
|
最大2GB(231から1を引いたバイト数)の可変長文字データ。下位互換性のために提供されます。 |
|
12 |
|
紀元前4712年1月1日から紀元9999年12月31日までの日付を指定します。デフォルトの書式は、 |
|
21 |
|
32ビット浮動小数点。このデータ型には5バイト(バイト長を含む)必要です。 |
|
22 |
|
64ビット浮動小数点。このデータ型には9バイト(バイト長を含む)必要です。 |
|
180 |
|
日付の年、月、日および時刻の時、分、秒の値。 |
|
181 |
|
タイムゾーンによる時差などのすべての |
|
231 |
|
デフォルトの書式は、 |
|
182 |
|
年および月で期間を格納。 |
|
183 |
|
日、時、分および秒で期間を格納。
サイズは11バイトに固定されています。 |
|
23 |
|
長さ |
|
24 |
|
最大2GBの可変長バイナリ・データ。 |
|
69 |
|
表の行のアドレスを一意に表すBASE64文字列。主に、 |
|
208 |
|
索引構成表の行の論理アドレスを表すBASE64文字列。オプションの |
|
96 |
|
長さ
|
|
96 |
|
長さ |
|
112 |
|
シングルバイト・キャラクタまたはマルチバイト・キャラクタを含むキャラクタ・ラージ・オブジェクト。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットでデータベース・キャラクタ・セットを使用します。最大サイズは、(4GB-1)×(データベース・ブロック・サイズ)です。 |
|
112 |
|
Unicodeキャラクタを含むキャラクタ・ラージ・オブジェクト。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットでデータベースの各国語キャラクタ・セットを使用します。最大サイズは、(4GB-1)×(データベース・ブロック・サイズ)です。各国語キャラクタ・セットのデータを格納します。 |
|
113 |
|
バイナリ・ラージ・オブジェクト。最大サイズは、(4GB-1)×(データベース・ブロック・サイズ)です。 |
|
114 |
|
データベース外に保存された大きなバイナリ・ファイルへロケータを格納。データベース・サーバー上に存在する外部LOBへのバイト・ストリームI/Oアクセスを可能にします。最大サイズは4GBです。 |
|
参照: 『Oracle Database SQL言語リファレンス』の「データ型」を参照してください。 |
この項では、Oracleが提供するデータ型の構文を示します。
any_types
{ SYS.AnyData | SYS.AnyType | SYS.AnyDataSet }
XML_types
{ XMLType | URIType }
spatial_types
{ SDO_Geometry | SDO_Topo_Geometry |SDO_GeoRaster }
media_types
{ ORDAudio
| ORDImage
| ORDVideo
| ORDDoc
| ORDDicom
| still_image_object_types
}
expression_filter_type
Expression
表とクラスタを作成するSQL文では、ANSIデータ型、およびIBM社の製品SQL/DSとDB2のデータ型も使用できます。Oracleでは、Oracleデータ型の名前と異なるANSIまたはIBMのデータ型の名前を認識し、列のデータ型の名前として記録します。その後、次の表に示す変換に基づいて、Oracleのデータ型で列データを格納します。
表6-2 Oracleデータ型に変換されるANSIデータ型
| ANSI SQLデータ型 | Oracleデータ型 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:
NUMERICデータ型およびDECIMALデータ型では、固定小数点数のみを指定できます。これらのデータ型では、位取り(s)のデフォルトは0です。
FLOATデータ型は、2進精度bを持つ浮動小数点数です。このデータ型のデフォルト精度は、126桁の2進精度または38桁の10進精度です。
DOUBLE PRECISIONデータ型は126桁の2進精度を持つ浮動小数点数です。
REALデータ型は63桁の2進精度または18桁の10進精度を持つ浮動小数点数です。
表6-3 Oracleデータ型に変換されるSQL/DSとDB2のデータ型
| SQL/DSとDB2データ型 | Oracleデータ型 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:
DECIMALデータ型では、固定小数点数のみを指定できます。このデータ型では、sのデフォルトは0です。
FLOATデータ型は、2進精度bを持つ浮動小数点数です。このデータ型のデフォルト精度は、126桁の2進精度または38桁の10進精度です。
次のSQL/DSとDB2のデータ型には、対応するOracleデータ型がありません。次のデータ型を持つ列は定義しないでください。
GRAPHIC
LONG VARGRAPHIC
VARGRAPHIC
TIME
データ型がTIMEであるデータは、Oracleの日時データとしても表現できます。
|
参照: 『Oracle Database SQL言語リファレンス』の「データ型」を参照してください。 |