OK, jag hittade lösningen. I Django är alla bundna parametrar definierade som strängar (%s) så en hel del implicit konvertering görs när parametern till exempel är ett tal. Lösningen är att uttryckligen typcasta dem som nummer med funktionen TO_NUMBER(%s) i WHERE klausul.