博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Unix爱好者家园

卓越源代码  
   sdccf.cublog.cn
关于作者  
姓名:sdccf
职业:chinapost
年龄:36
位置:sd
个性介绍:

我的分类  




Sybase按照一定顺序导出bcp out表的字段
  来源:网海拾贝

目前的需求:数据库中有存在一张表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视图其实就是按照表中记录的物理顺序导出数据。

 发表于: 2008-05-17,修改于: 2008-05-17 22:35 已浏览266次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:2.32743

京ICP证041476号