0

我正面临以下问题。

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

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

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

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

ETL 配置:

<connection id="out-names" driver="csv" url="names.csv">
quote=
encoding=UTF-8
trim=true
null_string=
</connection>
...

<query connection-id="db" >
从名称中选择名称、描述;
<script connection-id="out-names">
$1;$2
</script>
</query>

对此有什么帮助吗?

提前致谢

4

2 回答 2

1

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

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

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

于 2013-02-13T15:06:43.653 回答
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>
于 2013-02-13T16:09:02.220 回答