Comment écrire une requête dans Oracle en ignorant la casse des chaînes comparées? Par exemple, "ange", "ange", "ange", "ange", "ange" seraient tous égaux en comparaison.
Si vous correspondez à la valeur totale de l'utilisation du champ
WHERE UPPER(fieldName) = 'ANGEL'
EDIT: De votre commentaire que vous souhaitez utiliser:
SELECT
RPAD(a.name, 10,'=') "Nombre del Cliente"
, RPAD(b.name, 12,'*') "Nombre del Consumidor"
FROM
s_customer a,
s_region b
WHERE
a.region_id = b.id
AND UPPER(a.name) LIKE '%SPORT%'
Vous pouvez utiliser le mot clé UPPER :
SELECT *
FROM Customers
WHERE UPPER(LastName) = UPPER('AnGel')
Vous pouvez utiliser:
select * from your_table where upper(your_column) like '%ANGEL%'
Sinon, vous pouvez utiliser:
select * from your_table where upper(your_column) = 'ANGEL'
Ce qui sera plus efficace si vous recherchez une correspondance sans caractères supplémentaires avant ou après le champ your_column , comme l’a suggéré Gary Ray dans ses commentaires.
avant de comparer les deux chaînes ou plus, exécutez d'abord les commandes suivantes
alter session set NLS_COMP=LINGUISTIC;
alter session set NLS_SORT=BINARY_CI;
une fois ces deux instructions exécutées, vous pouvez comparer les chaînes et la casse sera respectée. Par exemple, vous aviez deux chaînes s1 = 'Apple' et s2 = 'Apple', si vous souhaitez comparer les deux chaînes avant d'exécuter les instructions ci-dessus ces deux chaînes seront traitées comme deux chaînes différentes, mais si vous comparez les chaînes après l'exécution des deux instructions alter, ces deux chaînes s1 et s2 seront traitées comme la même chaîne.
raisons d'utiliser ces deux déclarations
Nous devons définir NLS_COMP = LINGUISTIC et NLS_SORT = BINARY_CI afin d'utiliser l'insensibilité à la casse 10gR2. Comme ils sont modifiables en session, il ne suffit pas de les définir dans les paramètres d'initialisation. Nous pouvons les définir dans les paramètres d'initialisation, mais ils n'affectent alors que le serveur et pas le côté client.
Plus de détails sur la réponse de M. Dredel et le commentaire de tuinstoel . Les données de la colonne seront stockées dans son cas spécifique, mais vous pouvez modifier la sensibilité à la casse de votre session pour la mise en correspondance.
Vous pouvez modifier la session ou la base de données pour utiliser une recherche linguistique ou sensible à la casse. Vous pouvez également configurer des index pour qu'ils utilisent des ordres de tri particuliers.
par exemple
ALTER SESSION SET NLS_SORT=BINARY_CI;
Une fois que vous commencez à vous lancer dans des langues autres que l'anglais, avec des accents, etc., il existe une prise en charge supplémentaire de l'insensible aux accents . Certaines fonctionnalités varient en fonction de la version, consultez le document Globablization de votre version d'Oracle. La dernière (11g) est ici
Je ne me souviens pas de la syntaxe exacte, mais vous pouvez définir la colonne de table comme étant sensible à la casse. Mais soyez prudent, car vous ne pourrez plus faire correspondre les cas et si vous VOULEZ «cool» pour ne pas correspondre à «CoOL», cela ne sera plus possible.