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

Lo spazio non è consentito dopo il prefisso del parametro ':'

Dalla mia esperienza te lo dico. Esistono due scenari
1) Si desidera specificare un parametro nella query il cui valore è impostato in modo dinamico.

eg: where user_id = :userId

Qui non avrai alcun problema se stai impostando un parametro con lo stesso nome di "userId";
2) Stai digitando il valore

eg: select count(id) :: integer

quando lo fai devi usare il carattere di escape altrimenti l'ibernazione penserà che sia un parametro. E darà un errore "Tutti i parametri non sono impostati " puoi superare questo problema scrivendo il codice usando il carattere di escape

eg:select count(id) \\:\\: integer

Quindi questo risolverà il tuo problema. E se usi erroneamente la barra in avanti anziché la barra all'indietro, riceverai l'errore "spazio non consentito dopo il prefisso"

Wrong: select count(id)//://: integer
Right: select count(id)\\:\\: integer

Ma ti consiglio vivamente di usare la funzione CAST invece di usare "::" questa sala operatoria select CAST(count(id) as integer) È il modo migliore per digitare il cast e porterà a errori minimi