私はPostgreSQLを初めて使用し、一連のCSVファイルをループしてロードする機能を構築するのに苦労しています。 1つのファイルでCOPY作業をうまく動作させることができますが、FOR LOOP構文を正しく取得できません。plpgsql:FROM句への変数の連結
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';
これがでエラーがスローされます。私は私のハエが/path/tmp.YEAR.out.csv
命名されているように、これは私がハッキングたものである年の数を代用しようとしています最初の||だから私は変数i
の連結を不適切に管理していると思われる。任意のヒント?
「r」タグを追加してそのように解決できますか? –
私は確かにそれについて考えていましたが、postgresql COPYコマンドの高速ロードが必要でした...私は〜500MBのファイルを〜500MB持っています。 –
@dirk、Rでクエリ文字列をロールするとクエリとして送信できますか?私はplpgsqlではなく、プレーンなSQLでしかできないと思っていたので、試してみませんでした。 –