BCP一般存放在所安装的ASE或者Open Client 的BIN目录中版本以前的ASEbcp存放目录为 $SYBASE/bin版本(含版本)以后存放目录为 $SYBASE/OCS_x/bin其中$SYBASE为SYBASE安装目录_x代表版本显示为_或者_可执行文件名称为bcpEXE
参数列表如下(可用 bcp – 得到)
usage: bcp [[database_name]owner]table_name[:slice_number] {in | out} datafile
[m maxerrors] [f formatfile] [e errfile]
[F firstrow] [L lastrow] [b batchsize]
[n] [c] [t field_terminator] [r row_terminator]
[U username] [P password] [I interfaces_file] [S server]
[a display_charset] [q datafile_charset] [z language] [v]
[A packet size] [J client character set]
[T text or image size] [E] [g id_start_value] [N] [X]
[M LabelName LabelValue] [labeled]
[K keytab_file] [R remote_server_principal]
[V [security_options]] [Z security_mechanism] [Q]
常用数据备份格式为
bcp dbnametablename out c:\temp\filename Usa Ppassword –Sservername –c
其中 –U后为SYBASE登录名称–P后为SYBASE登录口令–S后为SYBASE服务名称–c代表使用可见文本方式导出数据如果为数据恢复只需要将out 替换为 in 即可
可用如下方法生成一个可以一次导出一个数据库中所有表的数据的执行脚本
编辑一个如下文本文件文件名称例为 bcpscript
use dbname 选中将要导出数据的数据库
go
select bcp dbname + name + out c:\temp\ + name + Usa P Ssybcdsrv c from sysobjects where type = U (在sysobjects系统表中type为U的表为用户表系统表为S)
go
用如下格式执行
isql –Usa –Ppassword –Sservername –i bcpscript –o bcpoutbat(i参数后为输入文件o参数后文件为输入文件执行后得到的输出文件)
执行后可以得到一个后缀名为 BAT 的批处理文件(在unix下则生成一个shell文件并更改相应的执行权限)可直接执行即在指定的目录下导出了相应的数据文件一个表的数据为一个文件如在UNIX下则可不用BAT后缀
备份得到的数据文件如果需要重新往数据库中恢复只需要将上面操作步骤中BCP命令中的out 参数换为in参数即可
注意在对正式数据做操作前最好先作一些测试
另外如果牵涉到使用bcp进行字符集的更改可以采用 –J charset 参数进行关于BCP等工具的具体使用指南请参见SYBASE相关文档
针对系统移植所需做的工作应该有如下几个步骤
安装新环境的硬件环境包括网络硬盘状况;
安装新环境的操作系统包括Service Pack;
安装相同版本的SYBASE数据库产品包括补丁;
添加数据库用户设备等相关信息应与老系统中一致
创建新系统数据库;
利用你所拥有的表脚本或者通过SYBASE CENTRAL中的生成DDL功能将老系统中的建表脚本导出生成数据库中的表最好将建表脚本与建立表上约束(主键外键等)的脚本分开先在表上不建约束在数据导入后再加上;
BCP OUT 老系统中数据根据上面提到的方法;
运行建立其他对象的脚本包括索引主键外键及存储过程触发器缺省等;
在新系统中对需要更改的表结构做更改或者添加新表;
测试应用系统是否工作正常