DUMPを使うと、データがダンプされる(バイト列で表示される)。[2008-06-23]
デフォルトでは十進数だが、第2引数で16を指定すると十六進数で表示される。1000を足すと文字セットまで表示されるらしい。けっこう変な仕様だ…二進数でビットを立てるならよくあるけど。
SQL> select dump('ABC') from dual;
DUMP('ABC')
----------------------
Typ=96 Len=3: 65,66,67
SQL> select dump('ABC',16) from dual;
DUMP('ABC',16)
----------------------
Typ=96 Len=3: 41,42,43
SQL> select dump('ABC',1016) from dual;
DUMP('ABC',1016)
--------------------------------------------
Typ=96 Len=3 CharacterSet=JA16SJIS: 41,42,43
Lenはデータのバイト数、Typは型を表しているらしい。
| Typ | Oracle 9.2.0.1.0 | |
|---|---|---|
| 1 | VARCHAR2 | TO_CHAR() |
| 2 | NUMBER | TO_NUMBER() |
| 12 | DATE | |
| 13 | SYSDATE CURRENT_DATE TO_DATE() |
|
| 96 | CHAR | |
| 180 | TIMESTAMP | |
| 187 | TO_TIMESTAMP() | |
| 188 | SYSTIMESTAMP CURRENT_TIMESTAMP |
|
NUMBERやCHAR等は、桁数に関わらず同じTypらしい。
DATEやTIMESTAMPは、関数を呼んだ場合とテーブルの項目にした場合ではTypの値が異なるらしい。