【发布时间】:2016-01-15 22:33:38
【问题描述】:
我在尝试从平面分隔文件到 Sybase IQ 表中执行 bcp 时遇到以下错误。
无法执行语句。
在封闭字段的引号字符结束后找到非空格文本。
我无法在文件中观察到任何非空格文本,但这个错误阻止了我进行批量复制。 | 是列分隔符," 作为文本限定符,\n 是行分隔符。
下面是相同的示例模板,我正在使用。
LOAD TABLE TABLE_NAME(a NULL('(null)'),b NULL('(null)'),c NULL('(null)')) USING CLIENT FILE '/home/...../a.txt' //unix QUOTES ON FORMAT bcp STRIP RTRIM DELIMITED BY '|' ROW DELIMITED BY '\n'
当我使用 QUOTES OFF 执行相同的查询时,加载成功。但是,QUOTES ON 导致相同的查询失败。我也想去掉引号。
样本数据
12345|“abcde”|(空) 12346|“abcdf”|“zxf” 12347|(空)|(空) 12348|"abcdg"|"zyf"
任何线索都会有所帮助!
【问题讨论】:
-
你能给我们看几行数据吗?
-
@jboi 添加了示例。不确定,每行末尾是否有隐藏字符。我无法从我的任何记事本或 vim 中追踪它们。
-
文件的平台是什么? *nix 和 Windows 的任何组合?除此之外,您可以在 BCP 之前使用脚本去除引号。我的大部分 bcp 工作都与 ASE 相关,因此我对 IQ 可能出现的问题不太熟悉。
-
@MichaelGardner 平面文件是从 unix 环境生成的,我也尝试从 unix 环境加载它们