2016-11-29 6 views
0

Ich habe eine Funktion in PostgreSQL:PostgreSQL nicht Funktion von Python genannt erkennen

func(a integer, b integer) 

Wenn ich die Funktion von Python nennen:

"select * from func(%s,%s)"(a_1,b_1) 

Es funktioniert, wenn a_1 und b_1 ganze Zahlen sind. Es kann jedoch einen Fall geben, in dem b_1None ist. In diesem Fall erhalte ich diese Fehlermeldung:

Exception: ERROR: column "none" does not exist LINE 1: ...func(38,None)

Ich weiß, dass keine in Python zu PostgreSQL NULL entsprechen, aber in diesem Fall weiß ich nicht, wie es zu lösen.

+1

Ist es möglich, dass 'a_1' oder' b_1' etwas anderes als eine Ganzzahl ist? Sag mal, eine Schnur? Insbesondere eine Zeichenfolge wie [''); DROP TABLE Etwas - ''] ​​(https://xkcd.com/327/) – Kevin

+0

@Kevin a_1 und b_1 Daten werden von ganzzahligen Feldern in anderen DB empfangen. – avi

Antwort

1
"select * from func(%s,%s)" % (a_1, 'NULL' if b_1 == None else b_1) 
Verwandte Themen