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

Mellemrum er ikke tilladt efter parameterpræfikset ':'

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



  1. Hibernate session.beginTransaction() call og Mysql Start Transaction

  2. Et tabelnavn som en variabel

  3. PSQLEundtagelse:FEJL:syntaksfejl i tsquery

  4. Udled nye felter, der fører tæller igennem for hver post