如何在teradata中指定文本限定符?窃听还是清音限制?

wkftcu5l  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(284)

我试过使用teradata fastload
这是他们在官方网站上提供的样本文件

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` 据我所知,我必须指定文本限定符 `"` . 我该怎么做?
我看了文件,但没有提到这一点。
des4xlb0

des4xlb01#

根据与选择用于 SET RECORD 命令和a VARTEXT 布局:
数据中出现的任何字符序列都不能用作分隔符。分隔符中不能使用制表符以外的控制字符。
这可能会扩展到teradatajdbc驱动程序中使用的fastloadapi机制。
编辑
fastload已经有15年多的历史了,它能很好地完成它的目标——快速加载大量数据。您的其他选择是创建一个固定长度的记录,在这里您不必依赖分隔符,或者创建一个inmod来解析流到fastload中的文件。
其他替代方法包括multiload、teradata并行传输、tpump或适当的etl工具来加载数据。每种方法都有各自的优点和缺点,必须在提供给环境的数据格式中加以考虑。

相关问题