Ud fra min erfaring vil jeg fortælle dig. Der er to scenarier
1) Du ønsker at angive en parameter i forespørgslen, hvis værdi indstilles dynamisk.
eg: where user_id = :userId
Her vil du ikke få noget problem, hvis du indstiller parameter med samme navn som "userId";
2) Du typecaster værdien
eg: select count(id) :: integer
når du gør dette, skal du bruge escape-tegn ellers vil dvale tro, at det er en parameter. Og det vil give fejlen "Alle parametre er ikke indstillet" du kan overvinde dette ved at skrive kode ved hjælp af escape-tegn
eg:select count(id) \\:\\: integer
Så dette vil løse dit problem. Og hvis du forkert bruges fremad skråstreg i stedet for baglæns skråstreg vil du få fejlen "mellemrum er ikke tilladt efter præfiks"
Wrong: select count(id)//://: integer
Right: select count(id)\\:\\: integer
Men jeg anbefalede dig stærkt at bruge CAST-funktionen i stedet for at bruge "::"
denne operator select CAST(count(id) as integer)
Det er den bedre måde at typestøbe på, og det vil føre til minimale fejl