「Dual」は、1つの単一行を持つ「varchar2(1)」タイプの「dummy」という名前の1つの列を正確に含む一時テーブルであることがわかっています。そのレコードの値は「X」です。varchar2のサイズは1です。これは、1文字を超えてはならないことを意味します。ここで私の質問は次のとおりです。varchar2型の場合、一時的に任意のデータ型を保持できるのはなぜですか。また、1(サイズ)を超える文字を挿入した場合、(デュアル)それを受け入れるにはどうすればよいですか?例:
SQL> desc dual
Name Null? Type
------------------------------- -------- ----
DUMMY VARCHAR2(1)
SQL> select sysdate from dual;
SYSDATE
---------
22-JAN-13
SQL> select 5*5 result from dual;
RESULT
---------
25
SQL> select 'Ankita' as "Name" from dual;
Name
------
Ankita
明らかに、「SYSDATE」はDATE型(varchar2ではない)であり、「RESULT」はNUMBER型(varchar2ではない)です。また、「Ankita」は1文字以上、つまり6文字です。これは、varchar2が1つだけを保持し、6もサポートしているという構造と矛盾するはずです。