Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-01795 :le nombre maximum d'expressions dans une liste est de 1000, comment diviser la chaîne

Vous devez écrire une boucle qui exécute le SQL par blocs de 1 000 entrées chacun.

Vous pouvez également insérer les valeurs dans un tableau, puis effectuer une sous-sélection avec le IN clause, car avec une sous-sélection, la limitation de 1000 entrées ne s'applique pas. Cette limite est uniquement lorsque vous utilisez un SQL avec une chaîne de valeur codée en dur.

Quelque chose comme ça :

select *
from mytable t
where t.column1 = value
and t.column2 in
(
    select my_values
    from my_temp_table
)