list of interger as paramter für execute

Hallo,

ich versuche gerade folgendes zum laufen zu bringen:

del_pom_itself_sql2 = plpy.prepare('''DELETE FROM pom_xml2
                      WHERE pom_id in ($1)''', ['INTEGER'])

Die frage ich jetzt wie definiere denn jetzt den data type für $1 wenn es sich dabei um eine list von integern handelt? Also integer geht ja mal nicht und record auch nicht…

Ist das in plpyton oder so? Kenn ich nicht. Allgemein, Du willst offensichtlich aus einem Text, der Deine Liste von INTs enthält, ein Statement basteln. Das geht prinzipiell so, daß Du einen kompletten String baust und diesen an EXECUTE verfütterst. Also, als Beispiel, ‘select * from foo where id in (’ || ‘1,2,3’ || ‘)’, wobei das ‘1,2,3’ hier Deine Liste von Integern ist.

Falls meine Antwort daneben liegen sollte, dann stelle die Frage bitte präziser.

Andreas

ohje… ich bin doch nen aff…

Also so gehts:

del_pom_itself_sql2 = 'DELETE FROM pom_xml2 WHERE pom_id in (%s)'
...
plpy.execute(del_pom_itself_sql2%str(addition_tree_list)[1:-1])

Ja genau, das is Python. Sorry für die unnötige frage…