Sybase按照一定顺序导出bcp out表的字段

资讯 驱动中国 若水 2,385 次阅读 0 条评论
分享 Q

        目前的需求:数据库中有存在一张表A,表A有四列c1 c2 c3 c4;要将A中所有记录的c1,c2,c3三个字段,按照c1 c2排序后导出到数据文件中。

具体的分析:由于sybase中bcp后不能加sql语句,所以不能用bcp out select c1,c2,c4 from a order by c1,c2的方法来做。

解决方法:

1.更改表A的锁定类型locking scheme为allpages

 

ALTER TABLE A LOCK ALLPAGES

 

2.在表A的c1 c2列上创建聚簇索引

CREATE CLUSTERED INDEX aindex ON A(c1,c2)

 

 

3.创建视图只包含A的c1 c2 c3列

 

create view aview as select c1,c2,c3 from a

 

 

4.bcp导出视图

 

bcp aview out aview.data -c -t'|' -Uuser -Ppassword -Sserver >aview.log

 

总结:

1.使用聚簇索引来强制限定A表中的记录的物理顺序。

2.使用视图来选取需要导出的那些字段。

3.BCP OUT视图其实就是按照表中记录的物理顺序导出数据。

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友