Maison >base de données >tutoriel mysql >Comment résoudre ORA-01795 : nombre maximum d'expressions dans une liste ?

Comment résoudre ORA-01795 : nombre maximum d'expressions dans une liste ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 08:48:38409parcourir

How to Solve ORA-01795: Maximum Number of Expressions in a List?

ORA-01795 : Surmonter la limite des expressions dans une liste

Lorsque vous tentez d'interroger une base de données avec plusieurs valeurs à l'aide d'une clause IN, vous pouvez rencontrer l'erreur « ORA-01795 : le nombre maximum d'expressions dans une liste est de 1 000 ». Cette erreur survient lorsque le nombre de valeurs dans la clause IN dépasse la limite de 1000.

Solution de contournement : diviser pour mieux régner

Pour contourner cette restriction, il est nécessaire de divisez la liste de valeurs en plusieurs groupes plus petits. La solution de contournement suivante peut être implémentée :

  • Divisez la liste de valeurs en morceaux de 999 expressions ou moins.
  • Utilisez plusieurs clauses IN pour interroger la base de données pour chaque morceau de valeurs.
🎜>

Par exemple, considérons la requête :
SELECT field1, field2, field3
FROM table1
WHERE name IN
(
'value1',
'value2',
...
'value10000+'
);

Peut être réécrit en utilisant plusieurs IN clauses comme suit :
SELECT field1, field2, field3
FROM table1
WHERE  name IN ('value1', 'value2', ..., 'value999')
    OR name IN ('value1000', ..., 'value1999')
    OR ...;

En divisant la liste de valeurs en morceaux plus petits, la requête peut être exécutée sans rencontrer l'erreur ORA-01795. Cette solution de contournement fournit une solution simple pour gérer de grandes listes de valeurs dans les requêtes de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn