Netezza使用双引号

时间:2016-09-02 20:23:13

标签: sql csv export-to-csv netezza

我想将Netezza表中的一些数据导出到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

2 个答案:

答案 0 :(得分:2)

截至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"

答案 1 :(得分:0)

在Netezza的一个给定列周围获取引号的一种方法(尽管很乏味)是使用两个垂直管道符(“||”)来添加和附加引号:

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

将其保存到临时表,然后导出临时表。