in eine Funktion werden 3 Parameter übergeben “mitarbeiter integer[], vondatum date, bisdatum date”, die in einem Recordset benutzt werden müssten. Folgendes funktioniert tadellos:
for r in EXECUTE ‘select fid_mitarbeiter, von, bis from tagebuch.eintrag
where von between ‘’’ || vondatum || ‘’’ and ‘’’ || bisdatum || ‘’’
and fid_mitarbeiter = any(array [1, 2, 14])
group by fid_mitarbeiter, von, bis
order by fid_mitarbeiter, von;’ loop
end loop;
Ich komme allerdings nicht weiter, da meine bisherigen Versuche “any(array [1, 2, 14])” durch die Arrayvariable “mitarbeiter” zu ersetzen, gescheitert sind.
Kann jemand helfen? Im Voraus schon mal vielen Dank.
Ohne es zu testen, denke ich mal, Du mußt beim Array auch so verfahren wie mit den beiden anderen Variablen. Also, aus “fid_mitarbeiter = any(array [1, 2, 14])” müßte werden:
ich hatte auch gedacht, dass es so funktionieren müsste und hatte in der Richtung (fast) alle Varianten versucht.
Allerdings hätte ich mir die erscheinenden Fehlermeldungen nicht nur ansehen, sondern auch mal gedanklich auseinander pflücken sollen, was ich nach Deinem Hinweis noch mal intensiv gemacht habe und bingo:
also drei Apostrophe und ein typecasting auf text. Dies ist seltsamerweise bei den date-Variablen nicht notwendig. Hier erfolgt offensichtlich ein internes typecasting.