Forberedte erklæringer
Forklaringen på dette kan findes i kapitlet Konstanter af andre typer i manualen :
Fed fremhævelse mine.
Parametre for forberedte udsagn er faktisk ikke stik-literal men skrev værdier , så du kan ikke bruge formen skriv 'streng'
. Brug en af de to andre former til at caste værdien til en anden type, som om du allerede har fundet dig selv.
Eksempel:
PREPARE foo AS SELECT $1::date;
EXECUTE foo('2005-1-1');
Lignende for PQexecParams
i libpq C-biblioteket
Dokumentationen:
alternativet , som nævnt i citatet ovenfor, er at videregive OID'erne for de respektive datatyper med paramTypes[]
- hvis du rent faktisk har brug for rollebesætningen. I de fleste tilfælde burde det fungere fint at lade Postgres udlede datatyper fra forespørgselskonteksten.
Du kan hente OID for datatyper fra systemkataloget kode>pg_type :
SELECT oid FROM pg_type WHERE typname = 'date';
Du skal bruge det korrekte interne typenavn. For eksempel:int4
for heltal
.
Eller med en bekvem cast til regtype
:
SELECT 'date'::regtype::oid;
Dette er mere fleksibelt, da kendte aliaser for typenavnet også accepteres. For eksempel:int4
, int
eller heltal
for heltal
.