将一列的数据写入 unix 文件,另一列的数据与文件名相同的记录

Write data of one column to unix file with data in another column of the same record as file name

我在 Postgresql 中有一个任务,我一直坚持下去。你能帮忙吗,这样我就可以继续完成任务了。

我有一个名为 'JOBS' 的 table,样本数据如下所示

JOB_ID      ITEM
---------------------
1           APPLE
2           BANANA
3           CARROT

我需要将 ITEM 列中的数据写入 unix 文件。文件名必须是相应 ITEM 记录的相关 JOB_ID。

例如文件 1.txt 应包含数据 APPLE。 文件 2.txt 应包含数据 BANANA

提前感谢您的宝贵时间和帮助。

我会在 execute 中使用 copy 命令来做到这一点。

就像这样:

DO
$$
DECLARE 
    vRECORD RECORD;
    vSQL    TEXT;
    vMYPATH TEXT;
BEGIN
    -- place your path here - be sure having write permission to postgres user
    vMYPATH = '/home/christian/Temp/';

    -- loop your records saving each record to a single file
    FOR vRECORD IN SELECT JOB_ID, ITEM FROM JOBS ORDER BY JOB_ID
    LOOP
        vSQL = 'COPY (SELECT ''' || vRECORD.ITEM || ''' AS ITEM) TO ''' || vMYPATH || vRECORD.JOB_ID || '.txt''' ; 
        RAISE NOTICE 'SQL=%', vSQL;
        EXECUTE vSQL;
    END LOOP;

END;
$$
;