如何在Teradata中指定文本限定符?错误或清音限制?

时间:2014-03-11 19:34:41

标签: java teradata

我尝试使用Teradata fastload

这是the sample file that they provide on the official website

L_INDEX,L_TIMESTAMP,L_TEXT
1,2010-08-11 13:19:05.1,some text
2,2010-08-11 13:19:05.1,
3,2010-08-11 13:19:05.1,more text
4,,text
5,,

它与上述文件完美匹配


然后我只修改了第一行。因此some text成为"some, text"以下是完全合法的csv

L_INDEX,L_TIMESTAMP,L_TEXT
1,2010-08-11 13:19:05.1,"some, text"      // this row was slightly modified
2,2010-08-11 13:19:05.1,
3,2010-08-11 13:19:05.1,more text
4,,text
5,,

但我收到错误消息the first column contains 4 values but only 3 values were expected


至于我明白我必须指定文字限定符 "。我怎么能这样做?

我读过documentation但没有提到这一点。

1 个答案:

答案 0 :(得分:2)

根据FastLoad实用程序文档,该文档与选择用于SET RECORD命令和VARTEXT布局的分隔符有关:

  

数据中出现的任何字符序列都不能用作   分隔符。除了制表符之外,不能使用任何控制字符   在分隔符中。

这可能会扩展到使用Teradata JDBC驱动程序中使用的FastLoad API机制。

修改

FastLoad已经存在了15年以上,并且做得很好 - 快速加载大量数据。您的其他选择是创建一个固定长度的记录,您不必依赖分隔符或创建INMOD来解析文件,因为它将流式传输到FastLoad。

其他替代方案包括MultiLoad,Teradata Parallel Transport,TPUMP或适当的ETL工具来加载您的数据。每种都有自己的优点和缺点,必须考虑提供给环境的数据格式。