Existe-t-il un type booléen dans les bases de données Oracle, similaire au type de données BIT
dans Ms SQL Server?
Non seulement le type de données booléen est manquant dans le code SQL d'Oracle (pas PL/SQL), mais ils ne contiennent également aucune recommandation claire sur ce qu'il faut utiliser à la place. Voir ce fil sur asktom. En recommandant CHAR(1) 'Y'/'N'
, ils basculent en NUMBER(1) 0/1
lorsque quelqu'un signale que 'Y'/'N'
dépend de la langue anglaise, par exemple. Les programmeurs allemands pourraient utiliser 'J'/'N'
à la place.
Le pire, c’est qu’ils défendent cette décision stupide, tout comme ils défendent la stupidité ''=NULL
.
Nan.
Peut utiliser:
IS_COOL NUMBER(1,0)
1 - true
0 - false
--- profitez d'Oracle
Ou utilisez le caractère Y/N comme décrit ici
Selon les réponses de Ammoq et de Kupa, nous utilisons number (1) avec la valeur par défaut de 0 et n'autorisons pas les valeurs NULL.
voici un ajouter une colonne pour démontrer:
ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);
J'espère que ça aide quelqu'un.
Pas au niveau SQL et c'est dommage Il y en a un dans PLSQL bien
Non, il n'y a pas de type booléen dans Oracle Database, mais vous pouvez le faire de la manière suivante:
Vous pouvez mettre une contrainte de vérification sur une colonne.
Si votre table n'a pas de colonne de contrôle, vous pouvez l'ajouter:
ALTER TABLE table_name
ADD column_name_check char(1) DEFAULT '1';
Lorsque vous ajoutez un registre, par défaut cette colonne reçoit 1.
Ici, vous mettez une vérification qui limite la valeur de la colonne, il suffit de mettre 1 ou 0
ALTER TABLE table_name ADD
CONSTRAINT name_constraint
column_name_check (ONOFF in ( '1', '0' ));
Non, il n'existe pas de type booléen, mais vous pouvez utiliser 1/0 (numéro de type), ou 'Y'/'N' (type char) ou 'true'/'false' (type varchar2).
Il existe un type booléen à utiliser dans pl/sql , mais aucun ne peut être utilisé comme type de données d'une colonne.
Une astuce courante permettant d'économiser de l'espace consiste à stocker boolean les valeurs sous forme d'oracle CHAR, plutôt que NUMBER:
Tout simplement parce que personne n'en a encore parlé: utiliser RAW (1) semble également être une pratique courante.