如何将逗号分隔文件上传至Sybase表单列?LOAD TABLE报错求助
解决Sybase LOAD TABLE导入单列逗号分隔文本的报错问题
当然可以把逗号分隔的文本文件导入Sybase表的单列中!你遇到的报错是因为行分隔符和默认列分隔符撞车了,咱来一步步解决:
为啥会报错?
Sybase的LOAD TABLE默认用逗号(,)当列分隔符,而你把行分隔符也设成了逗号——系统有硬性规则:行分隔符必须和所有列分隔符不一样,哪怕你只导入单列,这个校验也会触发,所以就弹出了The row delimiter must be distinct from all column delimiters的错误。
两种可行的解决办法
办法1:显式指定一个不冲突的列分隔符
因为你只导入单列,列分隔符其实不会被实际用到,但我们可以随便指定一个和逗号不同的字符(比如竖线|、制表符\t),让系统的校验通过:
LOAD TABLE VOD_K (telecastKey) FROM 'C://Users//1336856//Documents//VOD.txt' STRIP OFF ESCAPES OFF QUOTES OFF COLUMN DELIMITED BY '|' -- 新增这行,指定列分隔符 ROW DELIMITED BY ','
办法2:改用文本实际的行分隔符(更推荐)
如果你的文本文件里,每个要导入的telecastKey值其实是按换行分隔的(比如每行一个值),那直接把行分隔符改成换行符\n就好,这也是更规范的文本导入方式:
LOAD TABLE VOD_K (telecastKey) FROM 'C://Users//1336856//Documents//VOD.txt' STRIP OFF ESCAPES OFF QUOTES OFF ROW DELIMITED BY '\n'
要是你的文本是单行的逗号串(比如1001,1002,1003),想把每个逗号分隔的元素单独作为一行导入,那办法1就更适合你。
额外小提醒
如果你的telecastKey值本身包含逗号,那还得开启引号功能(把QUOTES OFF改成QUOTES ON),用引号把包含逗号的值括起来,避免被当成行分隔符拆分。
内容的提问来源于stack exchange,提问作者Aditya Dhanraj
相关产品推荐
相关产品推荐

