J'ai trouvé ce lien utile.
Voici le paragraphe soulignant certains des avantages/inconvénients de chaque approche.
La conception la plus courante consiste à imiter les nombreux indicateurs de type booléen utilisés par les vues du dictionnaire de données d'Oracle, en sélectionnant "Y" pour true et "N" pour false. Cependant, pour interagir correctement avec les environnements hôtes, tels que JDBC, OCCI et d'autres environnements de programmation, il est préférable de sélectionner 0 pour faux et 1 pour vrai afin qu'il puisse fonctionner correctement avec les fonctions getBoolean et setBoolean.
Fondamentalement, ils préconisent la méthode numéro 2, par souci d'efficacité, en utilisant
- valeurs de 0/1 (en raison de l'interopérabilité avec
getBoolean()
de JDBC etc.) avec une contrainte de vérification - un type de CHAR (car il utilise moins d'espace que NUMBER).
Leur exemple :
create table tbool (bool char check (bool in (0,1)); insert into tbool values(0); insert into tbool values(1);`