使用dbisql将csv加载到SybaseIQ时出错

时间:2014-07-16 00:17:37

标签: sybase sybase-iq

我正在尝试使用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))

0 个答案:

没有答案