1

「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もサポートしているという構造と矛盾するはずです。

4

1 に答える 1