1

我在 Sybase ASE 中有一个包含 60 多列的大表,我想 bcp 出 12 列。我正在检查手册上的语法,但找不到提及列名的方法。

我还想在检索数据时添加一些逻辑,例如:

convt = case when A.isConvertible='0' then 'N' else 'Y'  end

我主要是在寻找类似 SQL Server bcp 中可用的 queryout 的东西。

我无法在 Sybase 端创建对象。这对我来说是一个来源,我只能在上面做 SELECT 。

4

2 回答 2

1

这很容易通过创建一个只包含您想要的列和值的视图来实现。然后,您可以使用bcp从视图中检索数据。

由于您无法在相关数据库中创建对象,这会使事情变得复杂,因为bcp仅支持导出完整对象。

仅对相关数据库具有选择权限的一种方法是在tempdb中创建视图。它不会在数据服务器重新启动之间持续存在,但它允许您bcp出您需要的列。

第二种解决方法可能是在本地系统上安装 ASE 实例,并通过 CIS(组件集成服务)安装远程表。此时,您应该能够创建所需的视图,并从本地系统执行 bcp out。

于 2013-01-13T19:43:45.103 回答
0

这可以通过isql在 unix 中使用实用程序来实现:

isql -Uuser -Sserver -Ppassword -iinputfile -ooutputfile

您还可以使用-w-s选项格式化数据。

于 2014-11-13T11:17:15.967 回答