Oracle
 sql >> Database >  >> RDS >> Oracle

JPQL LOWER Funzione nell'espressione IN

JPQL funziona come previsto. La sua interpretazione corretta, ecco come la funzione e il parametro sono definiti nel tuo codice.

Per ottenere il risultato desiderato con Oracle, puoi utilizzare il tipo Oracle Collection integrato ODCIVARCHAR2LIST . Quindi JPQL apparirà come di seguito:

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

NOTA: Per Oracle 12.2+, non hai bisogno di table funzione, quindi funzionerà anche di seguito:

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