sql >> Databasteknik >  >> RDS >> Oracle

JPQL LOWER-funktion i IN-uttryck

JPQL fungerar som designat. Det tolkar det rätt, det är så funktionen och parametern definieras i din kod.

För att uppnå önskat resultat med Oracle kan du använda den inbyggda Oracle Collection typen ODCIVARCHAR2LIST . Så JPQL kommer att se ut som nedan:

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

OBS: För Oracle 12.2+ behöver du ingen table funktion, så nedan kommer att fungera också:

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



  1. Oracle:Java lagrad procedur som skickar JMS-meddelande

  2. MySQL:uppdatera ett fält endast om villkoret är uppfyllt

  3. Konvertera MySQL datetime till tidsstämpel

  4. MySQL boolean - vända värdet?