我在Sybase ASE中有一个包含60 +列的大表,我想要bcp out 12列。我正在检查manuals上的语法,但找不到提及列名的方法。
我还想在检索数据时加入一些逻辑,例如:
convt = case when A.isConvertible='0' then 'N' else 'Y' end
我主要是在寻找SQL Server bcp中提供的查询功能。
我无法在Sybase端创建对象。这是我的一个来源,我只能对它做选择。
答案 0 :(得分:1)
通过仅使用所需的列和值创建视图,这很容易实现。然后,您可以使用 bcp 从视图中检索数据。
由于您无法在相关数据库中创建对象,因此 bcp 仅支持导出整个对象,因此会使事情变得复杂。
只有对相关数据库具有选择权限的一种方法是在 tempdb 中创建视图。它不会在dataserver重新启动之间持续存在,但它允许您 bcp 输出所需的列。
第二种方法可能是在本地系统上安装ASE,并通过CIS(Component Integration Services)安装远程表。此时,您应该能够创建所需的视图,并从本地系统执行bcp。
答案 1 :(得分:0)
这可以通过在unix中使用isql
实用程序来实现:
isql -Uuser -Sserver -Ppassword -iinputfile -ooutputfile
您还可以使用-w
和-s
选项格式化数据。