为什么我在Scriptella的输出CSV文件中获得双重双引号?

时间:2013-02-13 11:34:18

标签: java oracle csv double-quotes scriptella

我正面临以下问题。

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

我将用一个简单的例子来解释:

表NAMES中的字段描述包含以下内容:
这是我名字的“描述”

当我使用CSV驱动程序导出此表的内容时,我在CSV中看到以下数据:
这是我姓名的“”描述“

ETL conf:

  

< connection id =“out-names”driver =“csv”url =“names.csv”>
      报价=
      编码= UTF-8
      修剪=真
      null_string =
  < /连接>
  ...

  < query connection-id =“db”>
      选择名称,名称说明;
      < script connection-id =“out-names”>
         $ 1; $ 2
      < /脚本>
  < /查询>

对此有何帮助?

提前致谢

2 个答案:

答案 0 :(得分:1)

这是绝对正确的,2 x双引号表示CSV条款中的一个双引号,因此这是正确的...

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

第二个字符串中有“转义”双引号。

答案 1 :(得分: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>