1

我正在寻找将一些表从一个 sybase 服务器(ase 12.5)复制到另一个的最快方法。目前我正在使用 bcp 工具,但创建正确的 bcp.fmt 文件需要时间。

表具有相同的结构。每个表中大约有 25K 行。我必须复制大约 40 张桌子。我尝试对 bcp 使用 -c 参数,但在导入时出现错误:

CSLIB Message:  - L0/O0/S0/N24/1/0:
cs_convert: cslib user api layer: common library error: The conversion/operation
 was stopped due to a syntax error in the source field.

我的标准 bcp 输入/输出命令:

bcp.exe SPEPL..VSoftSent out VSoftSent.csv -U%user% -P%pass% -S%srv% -c
bcp.exe SPEPL..VSoftSent in VSoftSent.csv -U%user2% -P%pass2% -S%srv2% -e import.err -c
4

2 回答 2

0

由于您从不同的服务器复制,BCP 是要走的路!

如果它在同一台服务器中会有所不同。

于 2012-05-16T16:26:08.013 回答
0

您是说它是从 1 个 Sybase ASE 主机到另一个 Sybase ASE 主机吗?

如果您不想弄乱文件系统上的 BCP 或 I/O,您可以在目标数据库中创建一个 CIS 代理表,该表引用带有 select 语句的存储过程或源数据库中的物理表。

然后你可以插入destinationtable (col1, col2...) select col1, col2... from proxytablename

CIS 代理是相当资源密集型的,所以我会非常小心你在这里做了多少工作。

于 2012-08-08T05:47:49.060 回答