2013-02-13 65 views
0

我正面临以下问题。为什么我会在Scriptella上输出CSV文件的双重双引号?

使用etl配置文件,我从Oracle数据库表中加载一些数据,而不是将这些数据导出到CSV文件。 然而,当一个字段包含双引号(“)这个字被复制

我会用一个简单的例子来说明:

在表名字段描述包含以下内容:
这是一个“描述”我的名字

当我使用CSV驱动程序导出这个表我看到CSV以下数据的内容:
这是我的名字的“”说明“”

ETL的conf:

<连接ID = “出名字” 司机= “CSV” URL = “names.csv” >
报价=
编码= UTF-8
装饰=真正
null_string =
< /连接>
...

<查询连接id = “DB” >
选择名称,从名称描述;
<脚本连接id = “出名字” >
$ 1; $ 2
< /脚本>
< /查询>

任何帮助?

在此先感谢

回答

1

这是绝对正确的,2个双引号意味着在CSV方面一个双引号,因此这是正确的...

123,"This is a string",456,13-Feb-2013,"This is ""Another"" String" 

当第二个字符串有“逃脱“双引号。

0

如果你想输出内容转义,请尝试使用文本驱动程序,而:

<connection id="out-names" driver="text" url="names.csv"> 
</connection> 
... 

<query connection-id="db"> 
    SELECT NAME,DESCRIPTION FROM NAMES; 
    <script connection-id="out-names"> 
     $1;$2 
    </script> 
</query>