如何从一个包含许多列的表中从sybase中删除少量列?在检索数据时也可以适应某些逻辑吗?

bcp bulk sqlbulkcopy sybase-ase

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

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

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

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

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

热门答案

通过仅使用所需的列和值创建视图 ,这非常容易。然后,您可以使用bcp从视图中检索数据。

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

只有对相关数据库具有选择权限的一种方法是在tempdb中创建视图。它不会在dataserver重新启动之间持久化,但它允许您bcp out您需要的列。

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



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因