Oracle に格納可能なデータ型・内部コード

タイプコードとは DUMP 関数 で表示されるデータ型の内部番号。

SELECT DUMP('あいう',1016) FROM DUAL;
---
Typ=96 Len=6 CharacterSet=JA16EUC: a4,a2,a4,a4,a4,a6
   ↑ この番号のこと('あいう' は 96 = CHAR/NCHAR である)

タイプコード 1〜101

純粋なデータ型のタイプコード/タイプコード順 (typ) (Oracle 10g)

コードデータタイプ
1VARCHAR2
NVARCHAR2
2NUMBER
FLOAT
8LONG
12DATE
21BINARY_FLOAT Oracle 10g
22BINARY_DOUBLE Oracle 10g
100BINARY_FLOAT Oracle 11g (マニュアルと不一致)
101BINARY_DOUBLE Oracle 11g (マニュアルと不一致)
23RAW
24LONG RAW
69ROWID
96CHAR
NCHAR

タイプコード 102〜200

純粋なデータ型のタイプコード

コードデータタイプ
112CLOB
NCLOB
113BLOB
114BFILE
180TIMESTAMP
181TIMESTAMP WITH TIME ZONE
182INTERVAL YEAR TO MONTH
183INTERVAL DAY TO SECOND

タイプコード 201〜

純粋なデータ型のタイプコード

コードデータタイプ
208UROWID
231TIMESTAMP WITH TIME LOCAL ZONE

型変換されたデータ型のタイプコード

演算処理や TO_xxx 関数 などを使用するとコードが変化するデータタイプがある。
注意 これは勝手に調べた値(※)であってマニュアルでは見つかりませんでした。 可能性は低いでしょうがコードは変更される可能性があります。

(※) Linux X86 + Oracle 10g: おそらく、どの OS でも同じ値だと思います。

既存のコードにマップされるもの

コードデータタイプ
1TO_CHAR(xxx)
2TO_NUMBER(xxx)
ROWNUM
DATE - DATE + number

固有のコードにマップされるもの

コードデータタイプ
13SYSDATE
CURRENT_DATE
TO_DATE(CHAR)
14DATE - DATE
INTERVAL YEAR TO SECOND? (そんな期間型はない)
100TO_BINARY_FLOAT(xxx) Oracle 10g
101TO_BINARY_DOUBLE(xxx) Oracle 10g
187TO_TIMESTAMP(xxx)
LOCALTIMESTAMP
188SYSTIMESTAMP
CURRENT_TIMESTAMP
TO_TIMESTAMP_TZ(xxx)
189TO_YMINTERVAL(xxx)
NUMTOYMINTERVAL(xxx)
190TO_DSINTERVAL(xxx)
NUMTODSINTERVAL(xxx)
TIMESTAMP - TIMESTAMP
 

関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー