Jestem nowy w Postgresql i staram się zbudować funkcję pętli nad serią plików CSV i ładowania ich. Mogę sprawić, aby KOPIUJ działało dobrze z jednym plikiem, ale nie mogę uzyskać poprawnej składni FOR LOOP. Próbuję zastąpić szereg lat jako moje muchy nazwie /path/tmp.YEAR.out.csvplpgsql: łączenie zmiennej w klauzulę FROM
To co ja włamał się:
CREATE OR REPLACE FUNCTION test() RETURNS void as $$
BEGIN
FOR i IN 1982..1983 LOOP
COPY myTable
FROM '/path/tmp.' || i::VARCHAR || '.out.csv'
delimiters ','
END LOOP;
END;
$$ LANGUAGE 'plpgsql';
to zgłasza błąd u pierwszy ||. Podejrzewam, że nieprawidłowo zarządzam zmienną zmiennej i
. Jakieś wskazówki?
Czy możemy dodać znacznik "r" i rozwiązać go w ten sposób? –
Oczywiście myślałem o tym ... ale potrzebowałem szybkiego załadowania polecenia COPY POGESQL ... Mam kilka tuzinów plików ~ 500MB. –
@dirk, jeśli mam przetasować ciąg zapytania w R, czy mogę go przesłać jako zapytanie? Myślałem, że mogę to zrobić tylko za pomocą zwykłego sql, a nie plpgsql, więc nawet nie spróbowałem. –