Parameterhalter werden innerhalb von Literalen nicht verstanden:'...:nom...'
enthält die Zeichen :nom
, nicht die gebundenen Werte von nom
.
Verwenden Sie für PostgreSQL 9.5 (und höher):
SELECT * FROM contrat WHERE contrat_json @> jsonb_build_object('nom', :nom)
Für 9.4:
SELECT * FROM contrat WHERE contrat_json @> CAST(json_build_object('nom', :nom) AS jsonb)
Für 9.3 (und früher) gibt es keinen JSON-Containment-Operator (weder den jsonb
Typ).
http://rextester.com/AUHP11519