2012-02-08 10 views
1

私はCOPY ... FROM ... WITH CSV...構文を使用していますが、ファイル名はデータベースのどこかに格納されている値から簡単に導出でき、スクリプトで常に変更することはメンテナンスの悪夢です。選択クエリから派生したソースからのコピー?

COPY ... FROM (SELECT filename FROM mytable WHERE x=1) WITH CSV...

おかげで、P:

は可能SELECTにファイル名、すなわちです。

答えて

1

できません。サブクエリを使用してファイル名を取得することはできません。

ただし、ストアドプロシージャ内で動的SQLを使用することはできます。バージョン9.0では、DOを使用できます。

DO 
$$ 
DECLARE 
    _file TEXT; 
BEGIN 
    SELECT filename INTO _file FROM mytable WHERE x=1; 

    EXECUTE 'COPY ... FROM ' || _file || ' WITH CSV...;'; 

    RAISE INFO 'File % imported', _file; 
END; 
$$; 
関連する問題