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

JPQL LOWER-Funktion im IN-Ausdruck

JPQL funktioniert wie vorgesehen. Es wird richtig interpretiert, so werden Funktion und Parameter in Ihrem Code definiert.

Um mit Oracle das gewünschte Ergebnis zu erzielen, können Sie den eingebauten Oracle Collection-Typ ODCIVARCHAR2LIST verwenden . JPQL sieht also wie folgt aus:

SELECT e 
FROM   myentity e 
WHERE  Lower(e.myattribute) IN 
       ( 
              SELECT Lower(column_value) 
              FROM   table(sys.odcivarchar2list(?1)))

HINWEIS: Für Oracle 12.2+ benötigen Sie table nicht Funktion, also wird unten auch funktionieren:

SELECT e 
FROM   myentity e 
WHERE  Lower(e.myattribute) IN 
       ( 
              SELECT Lower(column_value) 
              FROM   sys.odcivarchar2list(?1))