【sybase】bcp 问题总结

一. Bcp 错误

ct_connect(): network packet layer:internal net library error: Net-Lib protocol driver call to connect two endpointsfailed
Establishing connection failed.
无法连接远程服务器

cs_convert: cslib user api layer: commonlibrary error: The conversion/operation was stopped due to a syntax error inthe source field.
CSLIB Message: - L0/O0/S0/N36/1/0:
导入表对应的列数量不正确

cs_convert: cslib user api layer: commonlibrary error: The conversion/operation was stopped due to a syntax error inthe source field.
导入数据存在自增长列,但数据源不存在自增长列

blk_rowxfer(): blk layer: internalBLK-Library error: Data truncated while doing local character set conversion.col = 3
导入表对应的字段长度不足

ct_sendpassthru(): network packet layer:internal net library error: Net-Library operation terminated due to disconnect
CTLIB Message: - L5/O3/S5/N5/5/0:


二. Bcp 导入不同字符集数据
bcp in到字符集是utf8的数据库时使用以下的参数,这样就可以解决java程序使用utf8字符集看中文是乱码的问题: bcp dbname..tabname infilename -Uxx -Pxx -Sxx -Jcp936 -c -Y


三. 注意事项

1. Tempdb的大小

当Sybase执行bcp in脚本时,会占用导入数据2倍的tempdb空间,因此在执行前要仔细估计最大的table的大小,保证有足够的tempdb空间。当空间不够时,要考虑用分割table或删除陈旧数据的方法缩小table的大小,或者考虑增加tempdb的大小。

2. 数据库配置选项的设置

当数据库执行bcp in脚本时会产生大量的log,为保证bcp in进程不致因为log溢出而中断,应该设置database的选项“truncate log on chkpt”为“true”。

虽然Sybase数据库是自优化的,但只要数据库是动态的,数据库碎片现象就会存在。在OLTP应用的场合,随着数据的不断增大,系统变得越来越缓慢,并且经常出现死锁时,应该检查数据库的碎片,并且采用以上方法进行优化。

实际上,应该定期做数据库的碎片整理,保证数据库的物理存储经常处于最优状态,相对于增加硬件而言,这是一种更好的保持数据库性能的低成本的途径。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空