bcp dbnametablename out c:tempfilename 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 bcpout bat(i参数后为输入文件 o参数后文件为输入文件执行后得到的输出文件)
执行后可以得到一个后缀名为 BAT 的批处理文件(在unix下则生成一个shell文件并更改相应的执行权限) 可直接执行 即在指定的目录下导出了相应的数据文件 一个表的数据为一个文件 如在UNIX下则可不用BAT后缀
备份得到的数据文件如果需要重新往数据库中恢复 只需要将上面 *** 作步骤中BCP命令中的out 参数换为in参数即可
注意 在对正式数据做 *** 作前最好先作一些测试
另外 如果牵涉到使用bcp进行字符集的更改 可以采用 –J charset 参数进行 关于BCP等工具的具体使用指南 请参见SYBASE相关文档
lishixinzhi/Article/program/Sybase/201311/21918无法打开bcp主数据文件原因是权限导致的,解决办法如下:
方法一:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名 out c:\Book1.xls -c -q -Sservername -Usa -P1 ' --不要用双引号,不要用ip地址,要用servername.
方法二:
exec master..xp_cmdshell ’bcp "库名..表名 " out "c:\Book1.xls " -c -t ,-S "10.103.117.11 " -U "sa " -P "1 " '
方法三
c:\Book1.xls 变成 d:\Book1.xls 应该就可以啦 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)