我正在尝试使用dbisql的加载命令将一堆csv上传到SybaseIQ。 我的CSV看起来像这样
"ps,abc","jgh","kyj"
"gh",""jkl","qr,t"
我的加载命令和其他选项如下:
set temporary option ISQL_LOG = '/path/for/log/file';
set temporary option DATE_ORDER = 'MDY';
Load table test (a, b, c)
Format bcp
Strip RTRIM
Escapes OFF
quotes ON
Delimited by ','
我创建了一个' .ctl'文件如上所示,然后使用以下命令执行:
dbisql -c "uid = xxx; pwd = yyyy" -host aaaa - port 1089 -nogui test.ctl
执行时,我收到以下错误:
Non-space text found after ending quote character for an enclosed field.
--(db_RecScanner.cxx 2473)
SQLCODE=-1005014, ODBC 3 state="HY000"
无论其
使用以下csv格式
可以正常工作"ps,abc","jgh",kyj
"gh",""jkl",qrt
即如果最后一栏没有双引号则可行。但是我的所有文件都在每个元素周围都有双引号。
以下.ctl文件
set temporary option ISQL_LOG = '/path/for/log/file';
set temporary option DATE_ORDER = 'MDY';
Load table test (a ASCII(8), b ASCII(7), c ASCII(7))
Strip RTRIM
Escapes OFF
quotes ON
Delimited by ','
能够将第一个csv示例中的数据插入到数据库中,但它也会插入引号和逗号,并且还会混淆数据:
ex:数据库中的第一行看起来像
"ps,abc" ,"jgh", "kyj""g
而不是
ps,abc jgh kyj
我很想弄清楚问题是什么我已经阅读了sybase和dbisql的手册,并且根据第一个控制文件应该能够正确加载数据,但它没有做到那。任何有关这方面的帮助将不胜感激。提前致谢
我的表结构也是这样的:
a(varchar(8))b(varchar(7))c(varchar(7))