Os titulares de parâmetros não são entendidos dentro de literais:
'...:nom...'
conterá os caracteres :nom
, não os valores vinculados de nom
. Para PostgreSQL 9.5 (e posterior), use:
SELECT * FROM contrat WHERE contrat_json @> jsonb_build_object('nom', :nom)
Para 9.4:
SELECT * FROM contrat WHERE contrat_json @> CAST(json_build_object('nom', :nom) AS jsonb)
Para 9.3 (e anteriores), não há operador de contenção JSON (nem o
jsonb
modelo). http://rextester.com/AUHP11519