Hallo.
Ich übergebe in meiner Funktion ein array, über dessen ich gerne iterieren möchte.
CREATE OR REPLACE FUNCTION insertData (text[]) RETURNS text AS $$
DECLARE
var_values ALIAS FOR $1;
BEGIN
FOR i IN 1..var_values.length LOOP
INSERT INTO t_import ( location, obu, zeit ) VALUES var_values[i];
END LOOP;
RETURN 'signed';
END;
$$
LANGUAGE plpgsql;
in diesem text Array stehen werte für das INSERT statement. wie:
( 286, 'C0400', 1081713241 ) ,( 696, 'C04001', 1081710604 ) , usw
Leider bekomme ich immer eine Fehlermeldung:
ERROR: syntax error at or near “$1”
SQL Status:42601
Kontext:SQL statement in PL/PgSQL function “insertdata” near line 6
near “$1” kann es aber nicht sein da es geht, sobald ich das INSERT statement weg nehme.
Wie kann ich es bauen das der INSERT String funktioniert?
Ich kann in dem Array auch das komplette insert Statement reingeben. aber wie führe ich dann var_values aus?
Danke, mfg
sibob