Maison >base de données >tutoriel mysql >Comment éviter ORA-01795 : alternatives à plusieurs clauses IN ?

Comment éviter ORA-01795 : alternatives à plusieurs clauses IN ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 15:45:39899parcourir

How to Avoid ORA-01795:  Alternatives to Multiple IN Clauses?

Approches alternatives pour gérer "ORA-01795 : expressions maximales dans une erreur de liste"

Lorsque vous rencontrez le message "ORA-01795 : nombre maximum des expressions dans une liste est une erreur de 1 000", le conseil standard est de modifier la requête et d'inclure plusieurs clauses IN comme indiqué dans la réponse. Cependant, explorons une autre méthode alternative pour contourner cette limitation.

Une alternative consiste à utiliser une table temporaire, comme le montre la requête suivante :

CREATE TABLE temp_table AS
SELECT DISTINCT name
FROM table1
WHERE name IN ('value1', 'value2', ..., 'value10000+');

SELECT field1, field2, field3
FROM table1
WHERE name IN (SELECT name FROM temp_table);

DROP TABLE temp_table;

Cette méthode présente l'avantage de permettant à l'ensemble des valeurs d'être utilisées dans une seule clause IN, sans avoir besoin de le diviser en plusieurs clauses. De plus, elle est réutilisable, car la table temporaire peut être conservée pour de futures requêtes.

Bien que les deux approches soient efficaces pour résoudre l'erreur « ORA-01795 », le choix entre elles dépend des exigences et contraintes spécifiques de l'environnement 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