Posiadacze parametrów nie są rozumiane wewnątrz literałów:'...:nom...'
będzie zawierać znaki :nom
, a nie powiązane wartości nom
.
Dla PostgreSQL 9.5 (i nowszych) użyj:
SELECT * FROM contrat WHERE contrat_json @> jsonb_build_object('nom', :nom)
Dla 9.4:
SELECT * FROM contrat WHERE contrat_json @> CAST(json_build_object('nom', :nom) AS jsonb)
W wersji 9.3 (i wcześniejszych) nie ma operatora zawierania JSON (ani jsonb
typ).
http://rextester.com/AUHP11519