如何在没有在SYBASE中执行BCP输出操作的情况下生成格式文件明确

问题描述:

我正在寻找一种实用程序,它可以帮助我在没有在Sybase中执行BCP输出的情况下为任何表格生成格式文件。如何在没有在SYBASE中执行BCP输出操作的情况下生成格式文件明确

我了解并了解通过调用BCP out操作生成Format文件的解决方案。但这种方法的不足之处如下: 1.这是完全手动的,如果我需要为具有大量列的1600个表格做一个场景,那将是一场噩梦。 2.如果任何表的DDL会改变,那么保持跟踪和再生将是一个痛苦。

如果任何人都可以建议/建议我一个解决方案,我可以实现这两个或任何一个要求,那么它会缓解我的工作。

感谢 安迪

+0

你绝对需要格式文件吗?通常使用“-c”很简单,如果需要,可以将字段分隔符更改为数据中不存在的字符或字符串。 –

+0

“-c”选项在处理具有250 M数据的表时较慢。 BCP有一个原生格式选项,速度更快,使用格式文件选项进行泡泡会让我控制选择需要推入还是推出的内容。我正在进行数据迁移作业和修改Live环境的体系结构,我不能冒险。 – Andy

+0

我明白了。那么 - 我想我会用perl来读取syscolumns和systype来生成格式文件。我可以看到这可能是一件苦差事,但我认为它会起作用。你可能有用户类型,这会使事情变得复杂一些,但原则上.. –

您可以通过使用xp_cmdshell的揭开序幕BCP出生成格式文件自动执行此。您可以从存储过程调用xp_cmdshell,以便可以为目录中的每个表执行它。 但正如这里所提到的,你真的需要所有这些格式文件吗?