Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-01795:Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000, wie die Zeichenfolge aufgeteilt wird

Sie müssen eine Schleife schreiben, die das SQL in Blöcken mit jeweils 1000 Einträgen ausführt.

Alternativ können Sie die Werte auch in eine Tabelle einfügen und dann mit IN eine Unterauswahl treffen -Klausel, da bei einem Subselect die Beschränkung auf 1000 Einträge nicht gilt. Dieses Limit gilt nur, wenn Sie eine SQL mit einer fest codierten Wertzeichenfolge verwenden.

Etwa so:

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