А почему это лучше, чем VARCHAR2(1)?
NUMBER(1) на сервере занимает 2 байта вместо 1 (если не multi-byte),
а на клиенте 4 байта (если настроили на приведение к Integer) вместо 2.
А вообще, даже в известных прикладных программах отдается предпочтение разным подходам.
ComPiere (версия для Oracle):
IsActive CHAR(1) DEFAULT 'Y' NOT NULL CHECK (IsActive in ('Y','N')),
Парус:
SEX NUMBER(1) DEFAULT 0 NOT NULL CHECK (SEX in (0, 1, 2)),
BioSQL:
Is_Obsolete VARCHAR2(1) NULL CONSTRAINT IsObsolete1 CHECK (Is_Obsolete = 'X'),