2015-04-25 6 views
1

У меня есть следующая таблицаСтолбцы в строках и экспорт (копия) в текстовый файл

CREATE TABLE usr_addr_part_15 
(
    company character varying(70), 
    add1 character varying(50), 
    add2 character varying(50), 
    add3 character varying(50), 
    phoneoff character varying(30) 
) 

с данными выборки следующим

INSERT INTO usr_addr_part_15 
VALUES (
    'A Compnay' 
    ,'35/908A4, KINGS ARCADE, NORTH ATLANTA ROAD' 
    ,'FL' 
    ,'WS-600 025' 
    ,'011-200455/255477' 
    ) 
    ,(
    'B Company' 
    ,'35/465R, QUEENS ARCADE, WEST ATLANTA ROAD' 
    ,'FL' 
    ,'WT-601 085' 
    ,'0225-2455215/21470277' 
    ) 

Так что мне нужно COPY содержимое в usr_addr_part_15 к Текстовый файл, как показано ниже заданного формата:

COMPANY : A Compnay        
ADD1 : 35/908A4,KINGS ARCADE,NORTH ATLANTA ROAD 
ADD2 : FL           
ADD3 : WS-600 025         
PHONE(Off.) : 011-200455/255477     
--- End Of Company 1 ---       
COMPANY : B Company        
ADD1 : 35/465R,QUEENS ARCADE,WEST ATLANTA ROAD 
ADD2 : FL           
ADD3 : WT-601 085         
PHONE(Off.) : 0225-2455215/21470277    
--- End Of Company 2 --- 

В Windows XP, pgAdmin III.

+0

Какие среды вы используете? Некоторые конкретные приложения? PSQL? PgAdmin III? В Linux? Окна? – Patrick

+0

@Patrick обновлен :) – gabriele

ответ

0

Если я правильно понял, что вы можете сделать это следующим образом:

SELECT unnest(format('{COMPANY : %s,ADD1 : %s,ADD2 : %s,ADD3 : %s,PHONE(Off.) : %s,--- End Of Company %s ---}', company, replace(add1, ',', ';'), replace(add2, ',', ';'), replace(add3, ',', ';'),phoneoff, row_number() OVER())::TEXT []) 
FROM usr_addr_part_15 

и скопировать, запрашивая как

copy(
SELECT unnest(format('{COMPANY : %s,ADD1 : %s,ADD2 : %s,ADD3 : %s,PHONE(Off.) : %s,--- End Of Company %s ---}', company, replace(add1, ',', ';'), replace(add2, ',', ';'), replace(add3, ',', ';'),phoneoff, row_number() OVER())::TEXT []) 
FROM usr_addr_part_15 
) 
to 'D:\test.txt' -- the file name that you want save the data