enterprise0 发表于 2009-03-09 00:12

bcp in的问题:Failed when CT_Lib routine ct_fetch(BLK_IN_GET_FMT) called.

从HPUX的IQ导出A表(100万条记录)
bcp ${数据库名}..A out /tmp/A.iq -I${sybfaces} -U${DBUSER} -P${DBPWD} -S${DBSERVER}-c -t"|!" -J iso_1
检查返回值:没有出错。

下载到windows可以正常查看。

再二进制形式传到另一台AIX,试图用bcp in 导入IQ的B表(B表与A表结构一致)
bcp ${数据库名}..B in /tmp/A.iq -I${sybfaces} -U${DBUSER} -P${DBPWD} -S${DBSERVER}-c -t"|!" -J iso_1
结果出错:
Starting copy...
CTLIB Message:- L0/O0/S0/N0/0/0:
blk_init(): blk layer: internal BLK-Library error: Failed when CT_Lib routine ct_fetch(BLK_IN_GET_FMT) called.

Sending 1000 rows to SQL server
Sending 2000 rows to SQL server
Sending 3000 rows to SQL server
...

Failed

看看B表,没有数据。

如果手工编造一条记录,bcp in也会报错(Failed when CT_Lib routine ct_fetch(BLK_IN_GET_FMT) called),但bcp返回正常值。
且B表实际可以插入这条数据。

请高人给出一点建议。
谢谢。

coco_andy 发表于 2009-03-09 00:22

我觉得和编码有关,你试试用asc,要是还不行,就用scp命令试试。

D_D_D_D 发表于 2009-03-09 14:34


再二进制形式传到另一台AIX


ftp?bcp -c出来肯定是字符型的,-n又无法跨平台进行

建议把-t,-r,-T都加进去,这样比较保险

WFCJZ 发表于 2009-03-09 21:57

可以参考一下BCP说明文档!

zq5143 发表于 2009-03-11 10:59

往IQ中导数据,建议用load table方式,另外保证iq库的字符集和源库的字符集相同~
页: [1]
查看完整版本: bcp in的问题:Failed when CT_Lib routine ct_fetch(BLK_IN_GET_FMT) called.