2016-09-02 2 views
1

Я хочу экспортировать некоторые данные из таблицы Netezza в файл csv.Netezza export to csv с двойными кавычками

Я хочу, чтобы файл имел заголовок, был разделен запятой и имел двойные кавычки вокруг всех нечисловых полей.

Я использую следующий синтаксис:

CREATE EXTERNAL TABLE 'F:\My Documents\noname.txt' 
USING 
(
    IncludeHeader 
    DELIMITER ',' 
    QUOTEDVALUE 'DOUBLE' 
    REQUIREQUOTES 'TRUE' 
    ENCODING 'internal' 
    REMOTESOURCE 'ODBC' 
    ESCAPECHAR '\' 
    NULLVALUE '' 
) 
AS 
SELECT * 
    FROM MYTABLE 

Однако выход не показывает никаких признаков двойных кавычек. Примерный выходной ряд выглядит так:

04_0001_17.jpg,fr50139,Y,32 

Любые идеи, как получить что-то вроде этого?

"04_0001_17.jpg","fr50139","Y",32 

ответ

0

Один из них, хотя и утомительно, способ получить кавычки вокруг данного столбца Netezza является предварять и добавить кавычки с помощью двух вертикальных символов трубы («||»):

select '"' || col1 || '"', '"' || col2 || '"', col3 from table 

Сохранить это в таблицу temp, а затем экспортировать таблицу temp.

1

Начиная с версии 7.2.X Netezza не поддерживает QUOTEDVALUE во время разгрузки. Вам нужно заключить двойные кавычки в отдельные столбцы или все столбцы и сделать это частью инструкции select.

CREATE EXTERNAL TABLE 'C:\noname.txt' 
USING 
(
    IncludeHeader 
    ENCODING 'internal' 
    REMOTESOURCE 'ODBC' 
    ESCAPECHAR '\' 
    DELIMITER ',' 

) 
AS 

SELECT * 
FROM (
    SELECT quote_ident(prod_id) AS prod_id 
     ,quote_ident(CUST_ID) AS CUST_ID 
    FROM TEST..IMP_SALES_20160223 limit 10 
    ) a; 

Дополнительный выбор включен для ввода имен столбцов.

Выход:

PROD_ID,CUST_ID 
"13","1660" 
"13","1762" 
"13","1948" 
"13","2380" 
"13","5590" 
"13","8540" 
"13","9076" 
"13","35834" 
"13","524" 
"13","188" 
Смежные вопросы